суббота, 5 ноября 2011 г.

Изобретатели гладких кривых

Кривы́е Безье́ были разработаны в 60-х годах XX века независимо друг от друга Пьером Безье из автомобилестроительной компании «Рено» и Полем де Кастельжо из компании «Ситроен», где применялись для проектирования кузовов автомобилей.



Несмотря на то, что открытие де Кастельжо было сделано несколько ранее Безье (1959), его исследования не публиковались и скрывались компанией как производственная тайна до конца 1960-х.

Впервые кривые были представлены широкой публике в 1962 году французским инженером Пьером Безье, который, разработав их независимо от де Кастельжо, использовал их для компьютерного проектирования автомобильных кузовов. Кривые были названы именем Безье, а именем де Кастельжо назван разработанный им рекурсивный способ определения кривых (алгоритм де Кастельжо).

Это открытие на сегодня один из важнейших инструментов систем автоматизированного проектирования и программ компьютерной графики

Виды кривых Безье и их реализация

Все кривые Безье определяются порядком, начиная с первого, который фактически есть отрезок прямой линии в векторном исполнении. Наиболее употребляемые в практике кривые Безье имеют порядки 2 и 3, соответственно называемые квадратичными и кубическими кривыми Безье.

Основными свойствами этих кривых считается

  • непрерывность заполнения сегмента между начальной и конечной точками;
  • кривая всегда располагается внутри фигуры, образованной линиями, соединяющими контрольные точки;
  • при наличии только двух контрольных точек сегмент представляет собой прямую линию;
  • прямая линия образуется при коллинеарном (на одной прямой) размещении управляющих точек;
  • кривая Безье симметрична, то есть обмен местами между начальной и конечной точками (изменение направления траектории) не влияет на форму кривой;
  • масштабирование и изменение пропорций кривой Безье не нарушает ее стабильности, так как она с математической точки зрения «аффинно инвариантна»;
  • изменение координат хотя бы одной из точек ведет к изменению формы всей кривой Безье;
  • степень кривой всегда на одну ступень ниже числа контрольных точек. Например, при трех контрольных точках форма кривой — парабола;
  • окружность не может быть описана параметрическим уравнением кривой Безье;
  • невозможно создать параллельные кривые Безье, за исключением тривиальных случаев (прямые линии и совпадающие кривые).

Квадратичная кривая Безье (2-порядка), определяется с помощью задания трех точек, по следующей схеме

Здесь с помощи анимации получается эффект представления как строится кривая 2-порядка. Мы видим как прямая линия, скользящая из одной точки в другую, равномерно переносит свое положение на гладкую кривую, в каждый момент являясь для нее касательной .

Квадратичная кривая Безье в составе сплайнов используются для описания формы символов в шрифтах TrueType и в SWF файлах. В SVG-формате так же есть возможность задать квадратичную кривую в виде кисти path через команды следующего вида

M(m) xP0,yP0 Q(q) xP1,yP1 xP2,yP2
а так же зеркально-симетричного упрощения, с использованием предедущих значнеий
T(t) xP3,yP3
, превращая квадратичную кривую в кубическую

Кубическая кривая Безье (3-порядка), определяется с помощью задания трех точек, по следующей схемеМы видим, что сначало строится основа квадратичной кривой, которая в динамики скользит по направляюшим схемы, а затем уже в квадратичном обзоре строится сам кривая Безье 3-порядка. Кубические гладкие кривые

применяются в современных графических системах, таких как PostScript, Metafont и GIMP ввиде сплайнов Безье для представления криволинейных форм. В SVG-формате так же есть возможность задать квадратичную кривую в виде кисти path через команды следующего вида

M(m) xP0,yP0 C(c) xP1,yP1 xP2,yP2 xP3,yP3
а так же зеркально-симетричного упрощения, с использованием предедущих значнеий
S(s) xP4,yP4 xP5,yP5
, превращая кубическую кривую в кривые более высоких порядков.
2012©ABK