- •Глава 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. Анимация
- •Порядок выполнения и примерные темы курсовых работ
- •Литература
§ 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
