Кук Д., Бейз Г. - Компьютерная математика (1048841), страница 54
Текст из файла (страница 54)
Языки высокого уровня предусматривают массивы как структуры данных; следовательно, матричное представление всех рассмотренных выше преобразований должно существенно упростить их применение. Например, все произведения преобразований тогда могли бы вычисляться путем умножения матриц (см. гл. 6) вместо того, чтобы работать с определениями этих преобраэований. Нелинейная природа переносов препятствует представлениэо в .4'(2, й); однако вовможно получить подходящее представление обсуждаемых выше преобравований в эг (3, В), ЗАЕВ где матрицы оперирусот в пространстве Н' однородных координат К'.
Поскольку техника получения представления в однородных координатах носит весьма общий характер и, в частности, мохсет быть применена к преобравованиям в Вз (где получается представление в сс (4, К) ), мы отложим рассмотрение до описания преобразований в Вз 2.2. Преобразования в К'. Перенос в Кз есть отобраясение Т: Кз- Кз вида Тг г+ гс для всех г ж Кз, где ге ю Вз — фиксированный вектор. Если гэ =(хо, ую, зэ), то перенос на ге молсет быть записан в компонентной форме как Т(х, у, з) (и+хо, у+уо, э+го). Пусть Т(3) обозначает множество всех переносов Кз. Тогда Т(3) образует коммутатнвпую группу (по отношению к операции композиции) нелинейных преобразований Кз, изоморфпую группе (Кз, +).
Следствием этого является тот факт, что последовательность переносов Кз может применяться в произвольном порядке и будет давать один и тот нсе результат и что мы не моясем выполнить Т(3) прн помощи элементов из лУ(3, В). ас Р Рис, 10,13 Рас. 10.12 Группа поворотов в К' имеет более слолснусо структуру, чем БО(2). Рассмотрим поворот И'-„(8) на угол 0 вокруг оси, определяемой единичным вентором п ж Кз, как это изображено на рис. 10.12. Тогда гг'-„(О) г = г', тле г — вектор с концом в точке Р, а г' — преобразовапньсй вектор с концом в точке Р'.
Чтобы определить явно 357 И'„-(О), мы доля<вы выразить г', как функцию г, д и О. Ясно, что есле г — вектор, определяемый точкой У, леягащей яа оси поворота, то г (и; г)и, и если г», — вектор, соединяющий У и Р, то гвр = г — гв = г — (д г) д (д Х г) Х д Рисунок 10.13 показывает, кзк выглядит поворот из точки У в направлении начала координат 0; Д вЂ” точка, полученная поворотом точки Р на я/2 относительпо ося 0)У. Таким образом, И'„-(О) — поворот; следовательно, (гко( = (гяр( — — (гяр (, гкр = гяое(пО+ гярсоз0, где гкз — проекция вектора ка ось Лд',). Отсюда следует, что г ч пХг;„, пХ((иХг)Хи)=иХг (см.
упранспепие 10.1); следовательно, гяр =(а Х г)з(иО+((аХ г)Х а)соеО -(и Х г)з(иΠ— (д Х(д Х г))созО, но И";,(0)г Г'= гя+ гяр + (д Х (д Х г)) (1 — соз 0) + (и Х г) в(о О. Предложение. И'; (О) еи оО(З) Доказательство. Некоторые детали доказательства будем оставлять в качестве упражнений. Запишем Иг;(О) в несколько иной форме. Если и ы Кз определяет ось поворота, то определим преобразование А;: Вз-~- Вз следующим образом: А,,г= дхг; А-„является кепрерыввым и актисимметричным (см.
упражнение 10.1). Тогда А'-,г А; (А;г) = А„- (д Х г) = и Х (д Х г); А„- линейка и симметрично. ейчас мы можем записать Иг;(О) как сумму И'„-(8) 1+ (1 — совв) А'„-+ з(пОА„- в М'(3, В). Но Х(3, Н) — векторное пространство; следовательно, Иг„-(О) линейно. Ортогональпость следует из свойств А„-, так как И-„(О) =1+(1 —..В) ~А'-)'+ з(пв(А„-)т. = 1+ (1 — созо)Аав — з1пОА„-, И'„- (О) И'- (0)т ~1 + (1 — соз 0) А'- + з1 и ОА-1 е * ')1 + (1 — соз 0) А~- — в1 и ОА-~ =1+ [2(1 — созО) — з(п'0) А'-+ (1 — сов в)'А-' = =1+ (1 — соз О)*(А„'-+ А ), по (см.
упражнение 10.1) Аа — А„', Следовательно, И (О) И „- (В)т = 1 и „- (0),р, „ ,.„„,. Доказательство того, что бо1 И'„- (0) = 1, оставляем в качестве упражнения. 1 Обратное утверждение так>не справедливо (см. аадачу 12 упражнения 10.1); в частности, если И'ж Ю(3), то можно показать, что существуют единичный вектор и ж Кз и угол 0 в пределах 0 ~ 0 ( 2п такой, что И' гр„- (О).
Следовательно, разумпо определить повороты в Нз как группу 50 (3) . Определнм некоторые подгруппы ЯО(3). Часто требуется повернуть объект вокруг одной издекартовыхосей координат. Соответствующие матрицы могут быть иолучены из общего вида И';(О). Например, чтобы осуществить поворот на угол О вокруг оси ОЯ, выберем и )г (О, О, 1), для которого А„-= 1 О О, А~= Π— 1 О так что Гсоз —.МЕ О1 И'- (0) Мэ О соз О О О О 1 Лпалогично матрицы (~О О соз т, О з|в Х1 И'- (ф) О соз ф — з!и ф, Я1- (у) = О т О 1 О з1аф сов ф — Мвт О созХ соответствуют поворотам па углы ф и т вокруг осей ОХ н ОУ соответственно.
Доказательство этого оставляем в вачестве упражнении. Сейчас легко показать, что БО(3) — некоммутагнзная группа, так как в общем случае ( И -, (ф), и -, (у)~ ~- О, Рр-, (ф), И;- (В)1, О, РУ-,( ), И„-(В)1~О. Однако все подгруппы ( И'.- (О): 0 < О ~ а. ), = Вз коммутатизны (см. упражнение 10,1) . С практической точки зрения иэ этих результатов следует, что для обращения поворота надо просто транспонвровать матрипу, и если к некоторому геометрическому объекту применяют несколько поворотов, то порядок их применения важен. Следуя двумерному случаю, объединим Т(3) и ЯО(3~ в виде мноксстза Е(3) езклидозых преобразований В.
длемспты Е(3) имеют вид Уг =тРг+ ге для всех гж В', где И'ж ЕО(3) и геж В'. Правило композиции в Е(3) записывается следующим образом: ()Рз, гг)'(Иь г~) (ИзИгн ))гзг1+ге); по отпогпению к нему Е(3) становится некоммутативной группой нелинейных преобразований В'. Отсюда вытекают следствия, аналогичные двумерному случаю. И частности, подчеркнем, что Е(3) не может выполняться в хг(3, В). Преобразование масистаба в Вз является линейным отображением вида Я(х, у, з) =(йх, ну, оз), (х, у, з) ы Вз, где Х, р, о ) О. Множество Я(3) всех преобразований ЗОО масштаба определяет коммутативпую группу по отношению к операции композиции.
Остальные преобразования, рассматриваемые в этом параграфе, имеют цели и сзоиства, отличные от рассмотронпых выше, Нашей целью является задача представления трехмерного геометрического об.ьекта на двумерном графическом терминале. С математической точки зрении мы ищем преобразования Йз в двумерные надпространства, в которых получаются необходимые графические представлении нашего объекза. Напомним, что преобравоэанне Р векторного нространства называют проекцией, если Рг Р.
Пусть объект описывается в декартовой системе координат (х, у, г) и в этой системе экран графического дисалел соответствует прямоугольному подмвонгеству ((х, у): 0<х<а, 0<у~у) на плоскости ху. Простейший метод получения образа объекта нз экране — это применить преобразование Р1г г', где г (х, у, г) и г' (х, у, О), к множеству геометрических даиньж. Прв условна что все значения х и у для множества данных находятся внутри экрана, получаем полную мартину объекта. Если некоторые значения х и(вли) у находятсн вне пределов экрана, то надо вначале произвести подходящее преобразование масштаба. Р~ — линейная проекция, так как Р,(х, у, г) — О 1 О г, и Рзг = Ргг длЯ всех г н Нз.
Однако Р, ~ не сУществУ- ет, так как беь О 1 О =О. Геометрически Р~ можно получить следующим образом. Начертим линп1о сегмента (линию проекции) из точки Ч', определяющей положение вектора г, в точку (), определяющую полонеенне г', в плосности ху так, чтобы линия отрезка Я~' была ортогопальва плоскости ху (рис. 10Л4). Тогда ясно, что г'=г+( — гй) (х, у, 0)=Р~г. Р1 называют параллельной ортогональной проекцией Нз. 361 В параллельной вроекцпи пе отражается глубина получаемого образа; высота объекта появляется на вправе такой же независимо от его расстояния до плоскости лр.
Рис. 10.14 тли Рис. 10.15 й У ве" Рвс. 10.16 Последнее преобразовапио, которое мы опишем, предпазначево для того, чтобы дать глубину образа или «перспективу». Вместо линий параллельной проекции построим линии проекции, выходящие из некоторой фиксвро- 666 ванной точки, Определим проекцию Рзг г', где фиксированной точкой является конец вектора гр)г (как показано на рис. 10.15) и, следовательно, точка Ч отображается в точку ч'. Рисунок 10.16 представляет вид рис. 10.15, если смотреть вдоль осн ОХ.
Очевидно, что У У е з — з' р р или же у = —. У г — з/г р Аналопгчно получаем х х =$-3/3 ' р явная форма для Рз имеет вид Рз(х у г) 1 / (х у' О)' П р е д л о ж е н и е. Рз является нелинейной проекцией Кз. Доказательство. РзХ(х, у, г) Р (1х, йу,1г) = (Хх,)У,О), 7 Рз (х, у, г) = — (),х, ).у, О) ~ Р,),(х, у, г) для произвольного Х.
Следовательно, Рг нелинейно. Имеем Р (Р (х, у, г)) Р ~,, О) 1 / х У 1 — о (, т —./. ' 1 —./. ' О/ = ' 'р ' 'р и, таким образом, Рз — проекция з К' по определению. р" Отсюда моигно сделать ааключенпе, что Рз нельзя включить в лу(3, К). В образе можно достигнуть хорошей глубины применением Рь при условии что выбрана подходягцая точка проекции. Па рис. 10.17 показан зид прямоугольного параллелепипеда, полученный проекцияма Р~ и Рз.