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

В проективной геометрии для однородных координат принято следующее обозначение: х :у : 1, или, более общо, хьх2, х3

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

Применение однородных координат оказывается удобным уже при решении простейших задач.

Рассмотрим, например, вопросы, связанные с изменением масштаба. Если устройство отображения работает только с целыми числами (или если необходимо работать только с целыми числами), то для произвольного значения Н (например, И = 1) точку с однородными координатами (0.5 0.1 2.5)

представить нельзя. Однако при разумном выборе Н можно добиться того, чтобы координаты этой точки были целыми числами. В частности, при /г = 10 для рассматриваемого примера имеем (5 1 25).

Возьмем другой случай. Чтобы результаты преобразования не приводили к арифметическому переполнению, для точки с координатами (80000 40000 1000) можно взять, например, И = 0,001. В результате получим (80 40 1).

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

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

В самом деле, считая /7 = 7, сравним две записи: помеченную символом * и нижеследующую матричную: а у 0

{х*у*\) = (хуЦ р 8 0

Я // 1

Компьютерная графика. Полигональные модели Нетрудно заметить, что после перемножения выражений, стоящих в правой части последнего соотношения, мы получим обе формулы (7.1) и верное числовое равенство 1 = 1.

Тем самым сравниваемые записи можно считать равносильными. Замечание. Иногда в литературе используется другая запись - запись по столбцам:


⇐ Предыдущая| |Следующая ⇒