ПОНЯТНО О Visual Basic NET (том 3)

       

Кривая Безье


Кривая Безье – это плавная, красивая кривая, положение и кривизна которой определяются 4 точками. Рисуется она методом DrawBezier. Вот код:

Dim Гр As Graphics = Me.CreateGraphics

Гр.DrawBezier(Pens.Black, New Point(10, 50), New Point(100, 10), New Point(90, 80), New Point(150, 30))

Dim x As Integer

For x = 90 To 290 Step 20

    Гр.DrawBezier(Pens.Black, New Point(210, 50), New Point(300, 10), New Point(200 + x, x), New Point(350, 30))

Next

На Рис. 17.4 вы видите результат.

Рис. 17.4

Пояснения: Первый из двух операторов DrawBezier рисует кривую в левой части рисунка. Четыре точки для этой кривой я взял те же, что и для ломаной из 17.1.1, и тут же для лучшего понимания смысла кривой нарисовал саму ломаную. Мы видим, что кривая соединяет точки 1 и 4. Крайние отрезки исходной ломаной проходят по касательной к конечным участкам кривой. Точки 2 и 3 управляют прохождением и кривизной этой кривой.

Для иллюстрации роли точек 2 и 3 я написал цикл, в котором точка 3 меняет свое местоположение. Второй оператор DrawBezier, выполнившись 11 раз, рисует 11 кривых, которые вы видите в правой части рисунка. Можно представить себе, что точки 2 и 3, перемещаясь, «тянут» на себя кривую.

При надлежащем выборе точек кривые Безье могут быть самопересекающимися и замкнутыми.



Содержание раздела