Кривая Безье
Кривая Безье – это плавная, красивая кривая, положение и кривизна которой определяются 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, перемещаясь, «тянут» на себя кривую.
При надлежащем выборе точек кривые Безье могут быть самопересекающимися и замкнутыми.