При построении изображений удобно пользоваться структурами данных VB.Net: «Точка» - для указания координат точки, «Размер» - для указания размера прямоугольной области и «Прямоугольник» - для указания координат положения и размеров прямоугольной области.
«Точка», является структурой данных типа Point либо PointF, которую можно описать следующим образом:
Dim T As Point
T.X=200
T.Y=150
.
тип Integer
тип Integer
Dim T As FPoint
T.X=200.5
T.Y=150.5
.
тип Single
тип Single
«Размер» - структура данных типа Size либо SizeF, описываемая следующим образом:
Dim Разм As Size
Разм.Width=100
Разм. Height =150
.
тип Integer
тип Integer
Dim Разм As FSize
Разм.Width=100.8
Разм.Height=150.5
.
тип Single
тип Single
«Прямоугольник» - структура данных типа Rectangle, описываемая следующим образом:
Dim Пр As Rectangle
Пр.X=200
Пр.Y=150
Пр.Width=100
Пр. Height =100
.
тип Integer
тип Integer
тип Integer
тип Integer
Использование данного способа задания координат рассмотрим на примере прорисовки простейших фигур: прямоугольник, эллипс и линия (рис. 2.1).
Public Class Form1
Dim GR As Graphics, P1 As Pen, T1 As Point, T2 As Point, Пр As Rectangle, B As SolidBrush
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Show()
GR = Me.CreateGraphics
P1 = New Pen(Color.DarkGreen, 7)
B = New SolidBrush(Color.Coral)
T1.X = 50 : T1.Y = 100
T2.X = 350 : T2.Y = 100
Пр.X = 50 : Пр.Y = 50 : Пр.Width = 300 : Пр.Height = 100
GR.FillRectangle(Brushes.Yellow, Пр)
GR.DrawEllipse(P1, Пр)
P1.Color = Color.Red
GR.DrawLine(P1, T1, T2)
End Sub
End Class
На рис. 2.2 показан пример использования этого метода для построения семейства концентрических окружностей.
Public Class Form1
Dim GR As Graphics, P1 As Pen, Пр As Rectangle
Private Sub Btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn1.Click
Dim I As Integer
GR = Me.CreateGraphics
P1 = New Pen(Color.Green, 2)
Пр.X = Me.Width / 2 - 5 : Пр.Y = Me.Height / 2 - 5
Пр.Width = 10 : Пр.Height = 10
For I = 1 To 20
GR.DrawEllipse(P1, Пр)
Пр.Inflate(5, 5)
Next I
End Sub
End Class
Домашнее задание: Создать рисунки по образцам (рис. 2.3 – 2.6):