Методы геометрического преобразования
Геометрическое преобразование — это отображение р' = f (p) точки р ∈ Rn п-мерного пространства образа в точку р' ∈ Rn' n'-мерного пространства прообраза. Геометрические преобразования делятся на нелинейные (например, отражение в кривом зеркале) и линейные. Линейное преобразование точки описывается векторным уравнением
р' = рА + В (1)
с матрицами преобразования А∈ Rn×n' и B ∈ Rl×n' , не зависящими от вектора р.
В зависимости от размерности пространств п, п' и свойств матрицы А линейные преобразования делятся на невырожденные (аффинные) и вырожденные (проективные).
Свойства аффинного преобразования (АП):
n = n', rang(A) = n,
что означает квадратность и невырожденность матрицы А. Существование обратной матрицы А-1 позволяет по точке прообраза р' восстановить точку образа р:
p = (p' – B) A-1. (2)
При проективном преобразовании m < n и не существует обратной матрицы А-1, поэтому однозначное восстановление образа по прообразу невозможно из-за потери информации об одной или нескольких координатах образа.
Аффинное преобразование (от англ. affinity — родство) имеет следующие свойства:
отображает n-мерный объект в n-мерный — точку в точку, линию в линию, поверхность в поверхность;
сохраняет параллельность линий и плоскостей;
сохраняет пропорции параллельных объектов — длин отрезков на параллельных прямых и площадей на параллельных плоскостях.
Эти свойства позволяют строить прообразы полигонов на плоскости и полиэдров в пространстве по конечному набору т точек их вершин.
С целью упрощения и унификации записи геометрических преобразований вводится понятие расширенного пространства (РП) Rn+1, в котором (n + 1)-я координата равна фиксированному числу — единице или нулю. Координаты точки или вектора в РП часто называют однородными. Преобразование (1) точки в РП принимает вид
или , где
есть матрица преобразования в РП с обратной матрицей
,
описывающей обратное преобразование в РП , равносильное (2).
Цепочка из N преобразований в РП
эквивалентна одному преобразованию с матрицей
.
Матрица преобразования в расширенном пространстве рассчитывается единообразно — с помощью только перемножение матриц. Унификация — основное преимущество выполнения АП в однородных координатах, позволяющее без лишних раздумий правильно записать и быстро вычислить матрицу сложного преобразования С как произведение матриц элементарных преобразований Сi. Несмотря на то, что для этого требуется выход в пространство Rn+1, количество арифметических операций в общем итоге даже снижается.
К недостаткам преобразований в расширенном пространстве можно отнести:
избыточную размерность расширенных матриц и векторов;
фиксированные элементы последнего столбца [0 ... 0 l]Т, потребляющие машинные ресурсы;
необходимость контроля и коррекции фиксированных элементов после матричных операций в связи с возможным накоплением погрешностей машинного округления.
Важным свойством линейных преобразований является равенство модулей определителей матриц АП изменению площади (в R2) и объема (в R3) преобразуемого объекта, что позволяет быстро вычислять эти важнейшие параметры геометрических фигур по известным их исходным значениям и матрицам преобразований.
Часто бывает удобнее оставить объект неподвижным, а преобразованиям подвергать систему координат. Это пассивное АП описывается матрицей Ск= С-1, обратной к матрице С такого же активного преобразования объекта.
Все множество аффинных преобразований может быть сведено к следующим элементарным преобразованиям (ЭП):
Перенос (transfer) всех точек объекта на вектор Δр в неподвижной СК описывается уравнением и матрицами переноса
.
Масштабирование (растяжение, сжатие, отражение) вдоль осей координат описывается координатными уравнениями
с коэффициентами тх, ту и тz — диагональными элементами матриц масштабирования:
При m𝜔 = -1 точка отражается вдоль оси ω ∈ {x, y, z} от координатной плоскости ω = 0. Если все коэффициенты , то точка кососимметрично отражается относительно начала СК.
Неподвижная точка, подвергаемая масштабированию, удовлетворяет уравнению
При т𝜔 = 1 неподвижны все точки на оси ω. Центр масштабирования находится в начале координат, т к. только точка рн = Оn, остается неподвижной при произвольных масштабных коэффициентах т𝜔.
Масштабирование с нечетным числом отрицательных коэффициентов изменяет топологические свойства преобразуемых объектов. В частности, направление обхода вершин полигона при таком масштабировании меняется на противоположное. Возможность подобных эффектов необходимо предусматривать в алгоритмах, правильность работы которых зависит от направления обхода. Примером может служить задача определения видимости плоской грани полиэдра по направлению ее рассчитываемой нормали, зависящему от направления обхода вершин полигона грани. Если оно положительно и нормаль внешняя, то грань видима. Зеркальное отражение полигона этой грани имеет отрицательное направление обхода и внутреннюю нормаль, рассчитываемую по тем же формулам, что и нормаль самой грани. Таким образом, отраженная грань, реально видимая в зеркале, будет идентифицирована программой как невидимая и не отобразится на экране.
Определитель матрицы масштабирования равен У матрицы отражения с коэффициентами т𝜔 = ±1 он равен , где k — число инвертируемых координат преобразуемой точки. Например, при отражении вдоль одной оси получим . В результате инвертируются направления обхода всех отражаемых полигонов без изменения их площадей, а также объемов полиэдров.
При неравных масштабных коэффициентах преобразование масштабирования изменяет углы между векторами, площади, объемы и форму геометрических фигур. Неравномерное растяжение или сжатие вдоль осей координат — простейший способ получения эллипса из окружности и эллипсоида из сферы.
Сдвиг (shift) вдоль направлений осей СК или их комбинации описывается следующими координатными уравнениями и матрицами сдвига в R2 и R3:
Параметры сдвига задаются недиагональными элементами матриц S2 и S3. Коэффициент матрицы сдвига sij есть единица смещения вдоль оси i, пропорционального j-ой координате.
Сдвиговое смещение зависит от положения точки р, что и отличает его от переноса. Неподвижная точка удовлетворяет уравнению
Если в матрице Sn все недиагональные элементы ω-ой строки — нулевые, то при сдвиге неподвижны все точки, лежащие на оси ω. Две нулевые строки матрицы Sn − Еп дают множество неподвижных точек на координатной плоскости. Центр сдвига при произвольных параметрах матрицы Sn находится в начале координат.
Важно отметить, что если в матрице сдвигового преобразования элемент sij ≠ 0 не единственен, то векторы смещения d не параллельны, а сдвиг осуществляется одновременно вдоль нескольких осей СК, и его нельзя заменить последовательностью одноосевых сдвигов.
Преобразование сдвига может иметь вырожденную матрицу с нулевым определителем, например,
Размерность пространства, натянутого на точки сдвинутого в Rn объекта, равна рангу матрицы Sn. Следовательно, при rang(Sn) < п преобразование сдвига не является аффинным.
Вращение (rotation) точки на плоскости ху вокруг начала координат описывается следующими координатными уравнениями:
откуда следуют матрицы вращения в положительном (против часовой стрелки) и отрицательном (по часовой стрелке) направлениях:
Преобразование вращения не изменяет углы между синхронно вращающимися векторами, площади, объемы и форму геометрических фигур, а также топологические свойства полигонов. Определители всех матриц вращения равны единице. Благодаря свойству ортогональности
при изменении знака угла вращения на противоположный обращение матриц вращения заменяется их транспонированием:
Векторы смещения вращательного движения
образуют цилиндрическое векторное поле, ось симметрии которого ω содержит множество неподвижных точек. Центр всех вращений на произвольные углы вокруг любых осей координат располагается в начале СК.
Строго говоря, вращение не является элементарной операцией, т. к. его можно представить последовательностью масштабирования и сдвига:
Тем не менее ввиду простоты понимания, распространенности и важности места вращательного движения в системе геометрических преобразований целесообразно считать вращение элементарным, а не сложным преобразованием.
Проецирование (от лат. projecho — выбрасывать вперед) — это отображение трехмерного объекта на двухмерную картинную плоскость (КП). Получение проекции базируется на методе трассировки лучей: из центра проецирования S (проектора) проводятся лучи через каждую точку объекта до пересечения с КП. След, образуемый точками пересечения лучей с КП, составляет проекцию объекта. Если фокусное расстояние F во много раз больше габаритов объекта и расстояния d от источника лучей до объекта, то пучок проецирующих лучей можно считать параллельным, а источник — дальним. Такая идеализация отображения объемного мира на плоский экран облегчает построение проекций, за что приходится платить ухудшением реалистичности изображений.
За длительное время развития цивилизации придумано множество способов изображения объемных объектов на плоскости, более или менее точно передающих их геометрическую форму. Поскольку проецирование — не аффинное преобразование и в принципе необратимо, то любая проекция всегда содержит в себе ошибку (неопределенность) восстановления координат объекта-образа. Назначение того или иного метода проецирования состоит в уменьшении неопределенности восприятия наиболее значимых свойств объекта за счет менее значимых. Например, архитектурный чертеж фасада здания абсолютно точно передает геометрическую ширину и высоту как всего фасада, так и его деталей, за счет полной неопределенности их глубины.
К числу важнейших свойств метода проецирования относится достоверность восприятия объекта наблюдателем по его проекции, т е. узнаваемость объекта по его плоскому изображению. Если свойство достоверности восприятия объявляется доминирующим, то наилучшей может стать "живая" проекция с далеко не минимальной геометрической неопределенностью. Например, изометрическая проекция несет искаженную информацию о размерах объекта во всех трех измерениях, но лучше передает форму объекта в целом по сравнению с изображением объекта в "фас".
Для лучшего восприятия ориентации объектов в пространстве часто рисуют вместе с проекциями объектов еще и проекции осей MCK x'y'z', СКС xс'yс'z'c или ОСК x'0y'0z'0.
Для получения ортографических проекций (видов) оси ОСК ориентируются параллельно осям МСК, вдоль которых направляются пучки проецирующих лучей. Так как последние оказываются перпендикулярными координатным плоскостям, то в виде теряется информация о координате вдоль оси координат, параллельной пучку. Отдельные виды необратимы. Восстановление 3d-объекта возможно не менее чем по двум его видам, содержащим совместно все три координаты.
С целью точной передачи размеров деталей в инженерной практике применяются чертежи в составе трех главных видов:
спереди или фронтальный (front) на КП f (ФКП), совпадающую с координатной плоскостью МСК xy. У проекции р' точки р координаты равны
х'= х, у'= у, z'= 0;
сверху или горизонтальный (horizon) на КП h — плоскость MCK xz. Координаты проекции точки р равны
х' = х, у' = 0, z' = z;
справа или профильный (profile) на КП р — плоскость MCK yz. Координаты проекции точки р равны
х' = 0, у' = у, z' = z.
Если сплошной (не каркасный) объект имеет сложную форму, которую нельзя передать с помощью главных видов, то как исключение в чертежах приводятся вспомогательные виды: левый, нижний и задний.
Область применения видов — машиностроительное черчение, архитектура и другие приложения, требующие точных измерений по чертежу линейных и угловых размеров объектов благодаря параллельности измеряемых элементов плоскостям проецирования. Особое значение имеет фронтальное ортогональное проецирование с матрицей Of как последняя фаза аксонометрического проецирования.
Создание на плоскости иллюзии объемности с помощью только одного изображения объекта возможно двумя способами.
Во-первых, объект вместе с его ОСК подвергается преобразованиям вращения вокруг двух или трех неколлинеарных осей, в то время как проецирующие лучи остаются перпендикулярными к проективной плоскости. Так получаются ортогональные аксонометрические проекции.
Во-вторых, можно направить проецирующий пучок под углом к КП, осветив тем самым объект сбоку. Так образуются косоугольные проекции и их оптический аналог — тени объектов на плоскости.
Задача аксонометрии (от греч ахоп — ось, metreo — измерять) состоит в определении координат проекций точек, осевых масштабов тx, тy, тz и ориентации проекций осей ОСК х', у' и z' на ФКП.
Косоугольное проецирование отличается от ортогонального тем, что в нем для объемного видения объекта пучок параллельных проецирующих лучей не ортогонален КП. При этом сам объект и его ОСК остаются неподвижными. Соответственно, Sкос = S. Косоугольное проецирование — основной инструмент для построения тени объекта на плоскости и отражения объекта в плоском зеркале.
Окружности в плоскостях, параллельных КП, проецируются в окружности, т. е. без искажений. Это главное отличие и основное преимущество косоугольного проецирования перед аксонометрическим, позволяющее избежать построения эллипсов с произвольной ориентацией полуосей.
При построении центральной проекции (ЦП) используются однородные координаты и эквивалентные векторы. Декартовы [х у z l] и однородные [a b с h] координаты расширенного вектора связаны соотношениями
(3)
Назовем операцию (3) приведением однородного вектора к декартовой форме, в которой h = 1.
Возможны два способа работы с однородными векторами:
все операции проводятся с векторами в декартовой форме, а полученные однородные векторы сразу переводятся по (3) в декартову форму;
операции проводятся с однородными векторами по специальным формулам, а перевод в декартову форму выполняется только на последнем этапе вывода изображения на экран дисплея.
Важнейшее свойство центрального проецирования, давшее ему второе название, — перспективное (от лат. perspicio — ясно вижу) схождение проекций параллельных линий. Благодаря этому свойству, плоские изображения выглядят объемно и реалистично.
Одним из видов центрального проецирования является так называемая "обратная перспектива". Визуально обратная перспектива отличается от прямой тем, что в чей из двух одинаковых фигур крупнее выглядит та, которая расположена от наблюдателя дальше, что придает изображению некоторую ирреальность, неестественную потусторонность.