Дек
26th

Урок 23. Графические методы DrawLine, DrawEllipse и DrawRectangle

Рубрика: Visual Basic.NET для школьников | Автор:admin

Урок из серии: “Программирование на Visual Basic.NET для школьников”

В прошлом уроке мы познакомились с объектами, необходимыми для рисования и с графическими методами языка Visual Basic.NET.

В этом уроке  рассказывается  о  графической системой координат, вы узнаете где нужно размещать графический программный код,  научитесь применять графические методы DrawLine, DrawEllipse и DrawlRectangle.

Справочная информация

Методом DrawLine рисуется отрезок прямой линии . Параметрами этого метода, кроме пера, являются координаты двух точек – начала и конца линии.

Методом DrawRectangle создается прямоугольник . Параметрами этого метода являются перо, координаты верхнего левого угла, ширина и высота.

Метод DrawEllipse используется для создания эллипса .Эллипс создается как геометрическая фигура, вписанная в прямоугольник. То есть самого прямоугольника на рисунке не видно, но параметры эллипса одновременно являются параметрами такого прямоугольника.

Рисование линий, прямоугольников и других фигур производится в компьютерной системе координат, начало которой расположено в верхнем левом углу области рисования. Ось X направлена вправо, а ось Y направлена вниз. Единицей измерения по умолчанию является точка (пиксель).

Компьютерная система координат графического поля шириной 300 точек и высотой 200 точек приведена на рисунке.

Компьютерная система координат

Где размещать графический программный код?

Графические методы не следует вызывать в обработчике события Form_Load. Программный код этой процедуры выполняется только один раз при загрузке формы. Если будет изменен размер формы или форма будет скрыта диалоговым окном или другой формой, рисунок перерисовываться не будет. Рисунок также исчезнет, если вы минимизируете окно формы, а затем снова его развернете.

Формы и элементы управления имеют событие Paint, происходящее каждый раз, когда они должны быть перерисованы, например, при первом отображении формы или когда форма закрывается другим окном.

Любой код, который пишется для отображения графики, обычно размещается в обработчике событий Paint, чтобы каждый раз, при обновлении формы, графика также перерисовывалась.

Проект «Система координат»

Создайте проект в котором в графическом поле на форме рисуется компьютерная система координат. Объект Graphics (Область рисования) создать первым способом, т.е. с использованием метода СreateGraphics() элемента управления PictureBox.

  1. Создайте проект под именем “система координат”
  2. Поместите на форму :
    • Графическое поле PictureBox1, которое будет использоваться в качестве области рисования;
    • Кнопку Button1  для создания обработчика события рисования осей и вывода шкал  компьютерной  системы координат.
  3. Установите размеры графического поля PictureBox1: присвоить свойству Width значение 300, а свойству Height – значение 200.
  4. Объявите переменные
    Dim Graph1 As Graphics
    Dim Pen1 As New Pen(Color.Red, 2)
    Dim drawFont As New Font("Arial", 7)

     

  5. Создайте обработчик Button1_Click события рисования осей и вывода шкал компьютерной системы координат
    Graph1 = Me.PictureBox1.CreateGraphics()
    Graph1.Clear(Color.White)
    
    'Рисование осей         '
    'Ось(X)
    Graph1.DrawLine(Pen1, 0, 0, 300, 0)
    'Ось Y
     Graph1.DrawLine(Pen1, 0, 0, 0, 200)
    'Pen2.DashStyle = Drawing2D.DashStyle.Dash
    For X = 0 To 300 Step 20
        'Засечки на оси X
        Graph1.DrawLine(Pen1, X, 0, X, 10)
        ' Вывод шкалы  оси X
        Graph1.DrawString(X, drawFont, drawBrush, X, 10)
        'Graph1.DrawLine(Pen2, X, 0, X, 200)
    Next
    
    For Y = 0 To 200 Step 20
        'Засечки на оси Y
        Graph1.DrawLine(Pen1, 0, Y, 10, Y)
        ' Вывод шкалы  оси Y
        Graph1.DrawString(Y, drawFont, drawBrush, 10, Y)
        'Graph1.DrawLine(Pen2, 0, Y, 300, Y)
    Next

     

  6. Запустите проект .  Осуществить щелчок на кнопке, появятся оси со шкалами компьютерной системы координат.  Сверните окно на панель задач и снова разверните. Как видите,  рисунок на форме не обновился.
  7. Завершите работу приложения.

Проект “Мои фигуры “

Создайте проект в котором на форме рисуется линия, эллипс и заполненный цветом прямоугольник. Фигуры должны перерисовываться, когда форма будет перекрываться другим окном или минимизироваться.

  1. Создайте проект с именем Мои фигуры. Увеличьте  размер формы. Вам понадобится место для создания графических фигур.
  2. Измените свойство Text формы Form1 на значение Рисование фигур.
  3. Область рисования, т.е. объект Graphics, создадим третьим способом, используя событие Paint формы.
    • Откройте окно Редактор кода, для этого выполните команду Посмотреть код в контекстном меню формы или щелкните в Обозревателе решений на кнопке Просмотреть код.
    • В редакторе кода слева в раскрывающемся списке Имя класса выберите Form1 Events – это список событий вашего проекта, ассоциированных с объектом Form1.
    • Справа в раскрывающемся списке Имя метода выберите событие Paint.

    В Редакторе кода появится процедура события Form1_Paint. Это место, где вы должны ввести код программы, который должен исполняться при обновлении формы Visual Basic.

    Обработчик события Paint для формы

  4. Рисуем три графические фигуры – красную линию, синий прямоугольник, зеленый  эллипс. Для этого в событийной процедуре Form1_Paint введите следующий код:
     'Определяем текущий элемент (Форму) в качестве области для рисования
     Dim Graph1 As Graphics
     Graph1 = Me.CreateGraphics
    
     'Описываем Перо, рисуем линию и эллипс
     Dim myPen1 As New Pen(Color.Red, 2)
     Dim myPen2 As New Pen(Color.Blue, 2)
     Dim myPen3 As New Pen(Color.Green, 2)
     Graph1.DrawLine(myPen1, 20, 30, 100, 80)
     Graph1.DrawEllipse(myPen2, 10, 100, 110, 80)
     Graph1.DrawRectangle(myPen3, 120, 10, 140, 80)
    
     'Освобождаем ресурсы, используемые объектами Graphics,Pen и Brush
     myPen1.Dispose()
     myPen2.Dispose()
     myPen3.Dispose()
     Graph1.Dispose()

     

  5. Сохраните проект. Запустите приложение и проверьте его работу. Visual Basic загрузит форму и выполнит событие Paint этой формы. Ваша форма будет выглядеть примерно так.

    Использование DrawLine, DrawEllipse и DrawlRectangle

  6. Минимизируйте форму, а затем снова восстановите ее размер. Событие Paint формы снова выполнится, и графические фигуры обновятся.
  7. Завершить работу приложения.

В этом уроке было показано применение графических методов DrawLine, DrawEllipse и DrawlRectangle

В дополнение к приведенным здесь методам, которые создают пустые или “незаполненные” фигуры, существует несколько методов, которые рисуют фигуры, автоматически заполняемые каким-либо цветом. Эти методы обычно имеют префикс “Fill” (заполнить): FillRectangle, FillEllipse и FillPolygon. Их мы рассмотрим на следующем уроке.

Следующий урок: Графические методы FillRectangle, FillEllipse и FillPolygon

Поделиться с друзьями


Оставить комментарий или два