Типы опорных точек

Соединительные точки между сегментами бывают нескольких типов. В одном случае требуется обеспечить соединение криволинейного сегмента с прямым, в другом - получить идеально гладкое сочленение (сопряжение) без стыка или перегиба. В качестве образцов опорных точек составим таблицу для следующих векторных программ, использующих кривые Безье: CorelDRAW, Adobe Illustrator и Macromedia FreeHand. Типы опорных точек в трехмерной графике представлены на примере Autodesk 3D МАХ.

Тип опорной точки, соединяющий два сегмента и обеспечивающий независимость управляющих точек по направлению и длине друг от друга, называется изгибом (рис. 14).

В программе CorelDRAW такая точка называется перегиб (cusp). В других программах: угловая (corner).

Угловое сочленение сегментов (изгиб) не всегда разумно и выгодно. Например, для создания окружности необходимо обеспечить соединение, которое называют гладким сопряжением, когда одна кривая плавно переходит в другую. Такое сочление обеспечивает гладкая опорная точка (smooth) (рис. 15). Условием этого являются управляющие линии, лежащие на одной прямой. У такой точки направление управляющих линий фиксировано относительно друг друга, при перемещении одной управляющей линии другая также движется синхронно как рычаг. Вместе с тем, такие управляющие линии могут различаться по величине.

Рис. 14.Пример точки перегиба Рис. 15.Пример гладкой точки

У программы CorelDRAW предусмотрен подвид гладкого сочленения, который называется симметричный узел (symm от слова "symmetrical") (рис. 16). Суть его состоит в том, что управляющие линии фиксируют не только по направлению, но и по величине (длина направляющих всегда одинакова). Если одну из них увеличивать или уменьшать, другая будет синхронно повторять это действие. В программах Adobe Illustrator и Macromedia Freehand такой тип опорной точки отсутствует, хотя его можно получить вручную.

В свою очередь, у программы FreeHand в отдельный вид опорных точек выделен случай гладкого сочленения прямолинейного и криволинейного сегментов (рис. 17). Такая точка получила название тангенциальной (connecter point). При выделении такая точка обозначается треугольником. Для того чтобы криволинейный сегмент гладко сопрягался с прямой линией, касательная криволинейного сегмента должна совпасть с продолжением прямого сегмента. Поэтому управляющая точка криволинейного сегмента способна двигаться только вдоль этой касательной. В программах CorelDRAW и Adobe Illustrator такое соединение также имеет место, но не выделено в специальный тип опорной точки.

Рис. 16.Симметричная опорная точка Рис. 17.Пример тангенциальной точки в программе FreeHand

Типы опорных точек можно суммировать в виде следующей таблицы (табл. 1).

Таблица 1. Типы опорных точек в различных векторных программах

Тип опорной точки Adobe Illustrator Macromedia FreeHand CorelDRAW
Угловая Corner anchor point Corner point Cusp node
Гладкая Smooth anchor point Curve point Smooth node
Тангенциальная Connector point
Симметричная Symm node

Типы опорных точек в трехмерной графике имеют ту же основу, но отличаются другими характеристиками (программа Autodesk 3D МАХ).

  • Smooth (гладкая): вершина, через которую кривая проходит "неуправляемо" гладко. Форма кривой определяется расстоянием между соседними вершинами.
  • Corner (угловая): вершина, в которой кривая получает излом.
  • Bezier (Безье): вершина Безье с управляющими рычагами, которые не равны по длине, но ориентированы строго в противоположных направлениях. Форма кривой зависит и от направления касательных, и от длины рычагов.
  • Bezier Corner (угловая Безье): все характеристики идентичны опорной точке Bezier, но угол между управляющими рычагами может быть произвольным, т. е. допускается излом на кривой.

Историческая справка о кривых*

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

Решение было найдено: в больших помещениях нужную форму кривой получали, выгибая длинные тонкие полоски дерева или металла. Такие полоски называли сплайнами (splines). Для того чтобы придать упругой полоске нужную форму, ее фиксировали в требуемых точках с помощью особых свинцовых грузил, которые за сходство формы назывались " утятами " (ducks). Результирующая кривая получалась гладкой, а форма изменялась перемещением грузил (рис. 18).

Рис. 18. Чертежные сплайны

Впоследствии понятие сплайна стали применять в математике для похожей цели — описания кривых.

В 1885 году Карл Вейерштрасс[2] сформулировал и доказал теорему, названную его именем. Примерно в таком виде она приводится в современных курсах математического анализа: в соответствии с этой теоремой для любой непрерывной на отрезке функции найдется многочлен, сколь угодно мало отличающийся от данной функции. В более простой формулировке это означает, что согласно доказанной теореме Вейерштрасса можно обрисовать любую функцию с помощью полиномов[3].

Вопрос о построении аппроксимирующего многочлена привлек многих математиков. Среди них одну из решающих ролей сыграл выдающийся ученый Сергей Натанович Бернштейн[4], который в начале XX века предложил новое доказательство теоремы Вейерштрасса с помощью теории вероятностей. В этом случае необходимый полином строится в явном виде (не параметрически). Именно данный полином и стал основой сплайновых кривых, в частности NURBS-кривых и кривых Безье.

Теперь все компьютерные художники и дизайнеры знают "кривые Безье", "инструменты Безье".

Резюме

Ø Кривые Безье получили широкое распространение, т. к. обладают следующими важными свойствами:

o начальная и конечная контрольные точки лежат на кривой;

o кривая на всем протяжении непрерывна, у нее отсутствуют разрывы;

o касательные к кривой в начальной и конечной контрольных точках являются отрезками, соединяющими их с двумя другими соседними контрольными точками;

o кривая всегда располагается внутри выпуклого многоугольника из ее контрольных точек

Ø Для построения кривой Безье требуются четыре контрольных точки, хотя кривая физически проходит только через две из них (опорные точки). Две точки остаются в стороне (управляющие точки).

Ø Кривая Безье - это вектор. Поэтому она располагает начальной и конечной точками. Направление контуров находит свою реализацию в составных контурах (compound paths).

Ø Соединительные точки между сегментами бывают нескольких типов, что позволяет обеспечить различные формы соединения (гладкую, тангенциальную или на изгиб).

Вопросы для конспектирования:

1. Сколько контрольных точек и какие требуются для построения кривой Безье?

2. Для чего программе нужно знать положительную или отрицательную сторону линии, поверхности?

3. Дайте сравнительную характеристику кривых Безье и NURBS-кривых. Подчеркните достоинства и недостатки.

4. Охарактеризуйте принцип линейной аппроксимации.

5. Перечислите все типы опорных точек, используемых различными векторными программами.

Индивидуальные задания:

1. Составьте развернутый конспект лекции.

2. Дополните таблицу 1 сведениями из других программ векторной графики.

*** Задание выполните в рабочей тетради.


[1] См. лекцию № 2 «Принципы векторной графики»

[2] Вейершрасс Карл (1815—1897) — немецкий математик, иностранный член-корреспондент (1864) и иностранный почетный член (1895) Петербургской Академии Наук. Известен своими трудами в области математического анализа, теории функций и линейной алгебры. Главным его научным достижением считается система логического обоснования математического анализа.

[3] Слово полином - от греческого слова poly (многочисленный) и латинского слова nomen (имя); русский эквивалент этого понятия - многочлен. Полином представляет собой алгебраическую сумму конечного числа одночленов, например, для одной переменной х многочлен имеет вид: y = a0xn +a1xn-1...+an, где а — коэффициенты многочлена, п — показатель степеней (целые неотрицательные числа).

[4] Бернштейн Сергей Натанович (1880—1968)— математик, академик Академии Наук СССР и Академии Наук Украины. Основные труды относятся к области теории дифференциальных уравнений (условия аналитичности решений), теории функций (приближение функций многочленами), теории вероятностей (аксиоматика, предельные теоремы).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: