Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема_Кривые в КГ.doc
Скачиваний:
9
Добавлен:
21.09.2019
Размер:
785.41 Кб
Скачать
    1. Изменение формы кривой. Соединение нескольких секторов.

Как изменить форму канонической кривой Безье, чтобы затем из нее получить многообразие форм, и составить объект любой сложности?

В программах векторной графики существует единственный способ – это интерактивное перемещение опорных и управляющих точек. Если перемещаются начальная или конечная точки, то кривая станет соответствующим образом изменяться (вытягиваться или сжиматься как упругая резинка). Перемещение управляющих точек изменяет кривизну соответствующей "половинки" кривой Безье, входящей в начальную или конечную точки (рис. 1.25).

Таким образом, с помощью перемещения этих четырех точек получают неограниченное количество форм кривой Безье, которая может быть всего-навсего одним отдельным сегментом сложного секторного контура.

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

Рис. 1.25. Способы изменения формы сегмента

Соединение нескольких секторов

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

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

В качестве образцов опорных точек составим таблицу для следующих векторных программ, использующих кривые Безье: CorelDRAW, Adobe Illustrator и Macromedia FreeHand.

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

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

Такое состояние сегментов называют изгиб (рис. 1.27).

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

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

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

Рис. 1.27. Пример точки перегиба

Рис. 1.28. Пример гладкой точки

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

Примечание. В программах Adobe Illustrator и Macromedia Freehand такой тип опорной точки отсутствует, хотя его можно получить вручную.

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

Рис. 1.29. Примеры векторных контуров, составленных из кривых Безье

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

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

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

Отсюда следует, что между ними образуются соединительные точки, которые иногда называются узлами (например, nodes – в графическом редакторе CorelDRAW). Метафора в этом случае очевидна: куски проволоки связываются узелками.

В других программах эти точки называются опорные точки (anchor point), дословно "якорные точки" (Adobe Illustrator), или просто точки (Macromedia FreeHand).

Для поддержки соотношения между элементарными сегментами существуют разные типы опорных точек.

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

Замечание. В программах CorelDRAW и Adobe Illustrator такое соединение также имеет место, но не выделено в специальный тип опорной точки.

Рис. 1.30. Симметричная опорная точка

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

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

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

Дополнительный материал к теме: представление кривых в КГ!!!