Иногда операции геометрического преобразования также называются преобразованиями моделирования, но в некоторых графических пакетах значения этих двух терминов отличаются. Вообще, преобразования моделирования используются для построения сцены или формирования иерархического описания сложного объекта, составленного из нескольких частей, которые, в свою очередь, можно разделить на более простые части, и т.д. В качестве примера рассмотрим самолет. Он состоит из крыльев, хвоста, фюзеляжа, двигателя и других частей, каждая из которых представляется через компоненты второго уровня, которые также можно представить набором частей нижестоящего иерархического уровня. Таким образом, самолет можно описать через эти компоненты и соответствующие преобразования “моделирования”, показывающие, как данный компонент встраивается в общую схему самолета. С другой стороны, геометрические преобразования используются для описания того, как объект движется по сцене в анимационной последовательности, или просто для того, чтобы посмотреть на объекты под другим углом. Некоторые графические пакеты обладают двумя наборами процедур преобразования, тогда как другие пакеты содержат один набор функций, который можно использовать и в геометрических преобразованиях, и в преобразованиях моделирования.
БАЗОВЫЕ ДВУХМЕРНЫЕ ГЕОМЕТРИЧЕСКИЕ ПРЕОБРАЗОВАНИЯ
Во всех графических пакетах есть функции для выполнения таких геометрических преобразований, как трансляция, вращение и масштабирование. В число других полезных процедур, которые часто включают в пакеты, входят процедуры отражения и сдвига. Чтобы представить общие концепции, связанные с геометрическими преобразованиями, рассмотрим вначале операции в двух измерениях, затем обсудим, как эти базовые идеи можно расширить на трехмерные сцены. Отметим, что знание базовых концепций позволяет легко писать процедуры геометрических преобразований объектов двухмерной сцены.
ДВУХМЕРНАЯ ТРАНСЛЯЦИЯ
Трансляция отдельной точки выполняется путем добавления смещений к ее координатам, в результате чего получается точка с новыми координатами. По сути, исходная точка перемещается по прямой линии в новое положение. Подобным образом действие трансляции на объект, определенный множеством точек (например, четырехугольник), заключается в перемещении всех точек объекта на одинаковое расстояние вдоль параллельных прямых. Затем весь объект отображается в новом положении.
Если исходный многоугольник требуется удалить, его можно перед трансляцией закрасить цветом фона. В некоторых графических пакетах используются и другие методы удаления компонентов изображения. Кроме того, если исходное положение многоугольника нужно сохранить, транслированные точки можно записать в другом массиве.
Для трансляции других объектов используются сходные методы. Чтобы изменить положение круга или эллипса, транслируются координаты центра, а затем фигура перерисовывается в новом положении. Для сплайновой кривой транслируются точки, определяющие ее траекторию, а затем восстанавливаются точки, лежащие между транслированными.