Рисуем линию

Создадим шаблон приложения для статической отрисовки.

Нарисовать линию можно с помощью DrawLine

Напомним что на вход DrawLine принимает кисть Pen, а далее 2 точки по 2 коорднаты (всего 4 координаты) , сперва идут (x1;y1) координаты первой точки линии, а затем идут (x2;y2) координаты второй точки линии.

Не забывайте что координаты оси Y увеличиваются сверху вниз и верхний левый угол окна имеет координаты (0; 0) (более пдробно смотри система координат)

Нарисуем горизонатльную линию

private void Form1_Paint(object? sender, PaintEventArgs e)
{
   var gr = e.Graphics; // создадим переменную gr для сокращенной удобства использования

   gr.Clear(Color.Black);  // очистим (закрасим) всю область рисования черным цветом
// нарисуем горизонатльную линию
// у горизонатльной линии координаты Y обоих точек должны быть одинаковыми давайте зададим их равными 100
// первую координаты по X сделем 50, а вторую 400
   gr.DrawLine(Pens.White, 50, 100, 400, 100);
}

Посмотрим что получилось.

Мы видим горизонтальную линию на экране. Теперь попробуйте самостоятельно изменить параметры DrawLine таким образом чтобы нарисовать вертикальную линию. А затем диагональную линию (под 45°)

Нарисуем крест

Для того чтобы нарисовать линию в самый нижний правый край нашего окна мы должны знать его координаты. Для этого мы можем воспользоваться встроенной переменной ClientRectangle (или ClientSize, т.к. для этой задачи они равнозначны).

Чтобы получить максимальную координату по X нашей области отрисовки используем ClientRectangle.Width

Для того чтобы получить максимальную координату по Y нашей области отрисовки используем ClientRectangle.Height

private void Form1_Paint(object? sender, PaintEventArgs e)
{
   var gr = e.Graphics;
   gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
   gr.Clear(Color.Black);
   gr.DrawLine(Pens.Green, 0, 0, ClientRectangle.Width, ClientRectangle.Height);
   gr.DrawLine(Pens.Green, 0, ClientRectangle.Height, ClientRectangle.Width, 0);
}

 

Набор линий разной толшины и цвета

private void Form1_Paint(object? sender, PaintEventArgs e)
{
    var gr = e.Graphics;
    gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
    gr.Clear(Color.Black);

    gr.DrawString("Thickness 1", SystemFonts.MessageBoxFont, Brushes.White, 20, 5);
    gr.DrawLine(new Pen(Color.Red, 1), 20, 25, ClientRectangle.Width - 20, 25);

    gr.DrawString("Thickness 10", SystemFonts.MessageBoxFont, Brushes.White, 20, 35);
    gr.DrawLine(new Pen(Color.Green, 10), 20, 55, ClientRectangle.Width - 20, 55);

    gr.DrawString("Thickness 25", SystemFonts.MessageBoxFont, Brushes.White, 20, 70);
    gr.DrawLine(new Pen(Color.Yellow, 25), 20, 100, ClientRectangle.Width - 20, 100);

    gr.DrawString("Thickness 50", SystemFonts.MessageBoxFont, Brushes.White, 20, 130);
    gr.DrawLine(new Pen(Color.MediumVioletRed, 50), 20, 180, ClientRectangle.Width - 20, 180);

}

Результат

Как мы видим создавая новые кисти через конструктор можно задавать цвет и толшину линии.

 

Задания:

1. Нарисуйте домик с помощью линий (квадрат и две косые линии для крыши, либо на ваше усмотрение)

2. Нарисуйте букву Н

3. Нарисуйте букву М

4. Нарисуйте букву И

5. Нарисуйте букву Ш

6. Нарисуйте букву А

7. Напиши свое имя с помощью линий

8. Нарисуйте Оси координат X,Y из центра нашего окна. Ось X выведете красной, а ось Y зеленой. Подумайте как можно расчитать центр используя переменную ClientRectangle.

Результат который вы должны получить:

9. Выведете горизонатльную и вертикальную линию по центру окна таким образом чтобы отступ от краев окна до каждой линии был по 50 пикселей. 

Резльтат который вы должны получить: