§ 3. Однородные координаты. Матричные представления линейных преобразований
Определение. Плоскими однородными координатами точки Р(x,y) называется набор чисел (x,y,1). Пространст-венными однородными координатами точкиР(x,y,z) назы-вается набор чисел (x,y,z,1).
Однородные координаты позволяют любое линейное пре-образование координат точек представлять в виде умноже-ния их слева на некоторую матрицу. Также однородные ко-ординаты позволяют оперировать с бесконечно удаленными точками. Рассмотрим, например, точку на оси x. Ее одно-родные координаты обозначим через (а,0,0,1). Если устре-мить точку к бесконечности по оси x, то для ее однородных координат справедливо следующее:
lim (a, 0, 0, 1 )= lim a(1, 0, 0, 1/a)= lim a(1, 0, 0, 0).
a→∞ a→∞ a→∞
Таким образом, бесконечно удаленная точка по оси x может быть задана однородными координатами (1, 0, 0, 0). Аналогично могут быть заданы точки, бесконечно уда-ленные вдоль осей y, z, а, также других прямых. Гео-метрический смысл равенства нулю четвёртой координаты бесконечно удалённых точек состоит в том, что на них не действуют преобразования сдвига.
120
В дальнейшем также будут использованы понятия тож-дественного и обратного преобразований.
Определение. Тождественным называется преобразова-ние однородных координат точки Р(x, y, z, 1), не изме-няющее их. Матрицей данного преобразования будет еди-ничная матрица
1 0 0 0 x x
Е= 0 1 0 0 ; y = Е y .
0 0 10 z z
0 0 0 1 1 1
Определение. Пусть некоторое преобразование Т перево-дит все точки пространства (плоскости) Р в точки Р*. Обратным к Т называется преобразование Т -1, осуществ-ляющее обратный перевод точек Р* в Р.
Последовательное выполнение преобразований Т и Т -1 да-ет тождественное преобразование с матрицей Е: МТ-1МТ=Е. Отсюда получим, что матрица обратного преобразования:
МТ -1 =М -1Т.
Преобразование Т -1существует только при условии:
det МТ 0.
Определение. Элементарными назовем следующие ли-нейные преобразования: сдвиг, отражение, изменение масштаба, поворот.
1). Сдвиг на вектор (x0, y0, z0). Все координаты точек увеличиваются на постоянные значения: x*=x+x0 ; y*=y+y0 ; z*= z+z0 .
В матричной форме:
x* x x0
y* = y + y0 .
z* z z0
1 1 1
121
Выразим новые координаты точек через исходные, выполняя необходимые действия над матрицами:
x* 1 0 0 0 x 0 0 0 x0 x 1 0 0 x0 x
y* = 0 1 0 0 y + 0 0 0 y0 y = 0 1 0 y0 y .
z* 0 0 1 0 z 0 0 0 z0 z 0 0 1 z0 z
1 0 0 0 1 1 0 0 0 0 1 0 0 0 1 1
При этом матрица сдвига на вектор (x0, y0, z0) имеет вид:
1 0 0 x0
Мсд(x0, y0, z0) = 0 1 0 y0 .
0 0 1 z0
0 0 0 1
Обратное преобразование соответствует сдвигу на обрат-ный вектор (-x0, -y0, -z0):
М -1сд(x0, y0, z0) = Мсд(-x0, -y0, -z0).
2). Отражение. При данном преобразовании одна или не-сколько координат точек меняют свой знак на проти-воположный. Матрицы преобразований получаются из мат-рицы Е заменой соответствующих диагональных элементов с 1 на (-1). Обратные преобразования отражения совпадают с прямыми. Рассмотрим основные виды отражений.
а) Отражение относительно плоскости -например,0yz (x=0). При этом однородные координаты точек по осям y, z оста-ются неизменны, а по x изменяют свой знак на противо-положный: Р = (x, y, z, 1) → Р* = ( - x, y, z, 1). Прямая и обратная матрицы преобразования будут следующими:
-10 0 0
Мот.(x)= М –1от.(x) = 0 1 0 0 .
0 0 1 0
0 0 0 1
122
Матрицы отражений относительно других плоскостей строятся аналогично.
б) Отражение относительно оси - например, 0х . Сохраняют-ся однородные координаты точек по этой оси (x); по остальным ( y, z) - изменяют свой знак на противополож-ный:Р=(x, y, z, 1) →Р*=(x, - y,- z, 1). Матрицы преобразо-вания будут следующими:
1 0 0 0
Мот.(y, z) = М –1от.( y, z) = 0 –1 0 0 .
0 0 –1 0
0 0 0 1
При отражении относительно других осей матрицы стро-ятся аналогично.
в) Отражение относительно начала координат . Все одно-родные координаты точек изменяют свой знак на противо-положный:Р=(x, y, z,1) →Р* =( -x, -y, -z,1). Матрицы пре-образования будут следующими:
-1 0 0 0
Мот.(х, y, z) = М –1от.(х, y, z) = 0 –1 0 0 .
0 0 –1 0
0 0 0 1
3).Изменение масштаба.
Координаты всех точек Р(x, y, z) умножаются на фикси-рованные положительные числа a, b, c (коэффициенты изменения по осям x, y, z):
x* a∙x
P*= y* = b∙y .
z* c∙z
123
При отсутствии изменения координаты ее коэффициент изменения равен 1.
Матрица для однородных координат при изменении масштаба образуется из Е заменой соответствующих диа-гональных единиц на коэффициенты изменения:
a 0 0 0
Мим(a, b, c) = 0 b 0 0
0 0 c 0 .
0 0 0 1
Обратное преобразование соответствует изменению масш-таба с коэффициентами (1/a,1/b,1/c):
1/a 0 0 0
М -1им(a, b, c) = Мим(1/a, 1/b, 1/c) = 0 1/b 0 0 .
0 0 1/c 0
0 0 0 1
4). Поворот. z
α
0
γ β y
x
Рис.6.4
Поворот вокруг произвольной оси, проходящей через на-чало координат, можно представить в виде последо-вательных поворотов вокруг осей x, y, z. Положительные на-правления углов поворота вокруг этих осей обычно задают таким образом, чтобы из положительного направления оси поворот происходил против часовой стрелки. Соот-ветствующие матрицы имеют следующий вид:
124
а) Матрица поворота на угол α вокруг оси z :
cos α -sin α 0 0
Мпz(α) = sin α cos α 0 0
0 0 1 0 .
0 0 0 1
б) Матрица поворота на угол β вокруг оси y:
cos β 0 sin β 0
Мпy(β) = 0 1 0 0
-sin β 0 cos β 0 .
0 0 0 1
в) Матрица поворота на угол γ вокруг оси x:
1 0 0 0
Мпx(γ) = 0 cos γ – sinγ 0
0 sin γ cos γ 0 .
0 0 0 1
Матрицы обратных преобразований:
M-1пz(α) = Мпz(-α); M-1пz(β) = Мпz(-β); M-1пy(γ) = Мпy(-γ).
Матрицы аналогичных плоских преобразований получают из пространственных вычеркиванием строки и столбца, со-ответствующих отсутствующей координате.
Функции на языке Autolisp, формирующие матрицы эле-ментарных линейных преобразований, даны в Приложении:
сдвиг – функция SD (результат – в списке MSD);
отражение – функция MR (результат – в списке MMR);
изменение масштаба – SC (результат – в списке MSC );
повороты вокруг осей x, y, z – RX, RY, RZ (результат, соответственно, в списках MRX, MRY, MRZ ).
125
- Глава 1. Основные виды геометрических объектов
- §1. Основные аналитические способы задания кривых
- §2. Виды кривых
- §3. Основные способы задания прямых
- §4. Способы задания окружностей и их дуг
- §6. Виды поверхностей
- Пример 2.Уравнение конуса второй степени
- §7. Основные способы задания плоскостей
- §8. Аналитические способы задания пространственных тел
- Глава 2. Интерполяция кривых и поверхностей алгебраическими полиномами
- §1. Основные способы моделирования кривых. Интерполяция и аппроксимация
- §2. Интерполирование кривых с помощью алгебраических полиномов канонического вида
- §3. Интерполирование по однократным узлам. Интерполяционные многочлены Лагранжа и Ньютона
- §4. Интерполирование по двукратным узлам. Интерполяционные многочлены Эрмита
- §5. Интерполирование поверхностей
- 5.1. Интерполирование по однократным узлам. Билинейные поверхности
- 5.2. Интерполирование по двукратным узлам
- Глава 3. Моделирование кривых и поверхностей при помощи сплайнов
- I. Построение локальных сплайнов.
- II. Построение интерполяционных сплайнов.
- §1. Интерполирование кривых и поверхностей с помощью локальных сплайнов
- 1.1 Построение сплайнов по однократным узлам
- 1.2 Интерполирование по двукратным узлам
- §2. Построение интерполяционных сплайнов.
- 2.2. Кубические интерполяционные сплайны
- §3. Интерполяция с помощью в-сплайнов
- Глава 4. Интерполирование поверхностей по линиям
- §1.Интерполирование по кривым (линейчатые или плазовые поверхности)
- §2. Линейные поверхности Кунса
- §3. Обобщенные поверхности Кунса
- Глава 5. Аппроксимация алгебраическими полиномами
- §1. Аппроксимация по методу наименьших квадратов
- §2. Аппроксимация алгебраическими многочленами по критерию наилучшего равномерного приближения
- § 3. Аппроксимация при помощи кривых и поверхностей Безье
- Глава 6. Модели объектов. Плоские и пространственные линейные преобразования
- §1. Модели (структуры данных) графических объектов
- §2. Задание плоских и пространственных линейных преобразований при помощи уравнений связи
- § 3. Однородные координаты. Матричные представления линейных преобразований
- Задачи. Записать прямые и обратные матрицы элемен-тарных преобразований, при помощи которых можно осу-ществить следующие действия:
- § 4. Составные линейные преобразования
- § 5. Линейные преобразования каркасных моделей
- Глава 7.Проективные изображения трехмерных объектов
- §1. Аксонометрические проекции
- 1.1.Ортогональные проекции
- 1.2 Диметрические проекции
- Куб Диметрическая проекция
- 1. 3. Изометрическая проекция
- §2. Перспективные проекции
- §3. Построение проективных векторных изображений трёхмерных объектов
- Глава 8. Графические базы данных (гбд)
- §1. Структура и схема функционирования типовых гбд
- §2. Постановка задачи проектирования гбд в графической системе AutoCad
- Точки привязки
- §3. Разработка структуры гбд
- §4. Пакетные файлы гбд
- §5. Параметрические функции гбд
- §6. Создание библиотек слайдов гбд
- §7. Модификация основного меню AutoCad 2000
- 7.1. Файл меню. Его разделы. Управляющие символы
- 7.2. Модификация всплывающего и падающего меню AutoCad2000
- 7.3. Модификация экранного меню AutoCad2000
- 7.4. Модификация графического меню AutoCad2000
- §8. Использование разработанной базы данных
- Глава 9. Создание реалистических изображений
- § 1. Пространственные модели
- §2. Геометрическое моделирование объектов сложной формы
- § 3. Текстуры
- § 4. Основные операции при построении реалистических изображений
- § 5. Моделирование источников освещения и расчёт освещённости малых участков поверхности объектов
- § 6. Моделирование отражающих свойств поверхностей
- § 7. Моделирование отражения от поверхности (затенение)
- § 8. Удаление невидимых граней. Расчёт теней
- §9. Создание стереоскопического эффекта
- §10. Анимация
- Порядок выполнения и примерные темы курсовых работ
- Литература