- •Оглавление
- •1.Аксонометрическая проекция. Виды аксонометрических проекций.
- •2.Алгоритм Брезенхейма для развертки отрезка
- •5.Косоугольные проекции Косоугольная фронтальная изометрия
- •Косоугольная горизонтальная изометрия
- •Косоугольная фронтальная диметрия
- •6.Кривые Безье (https://learn.Javascript.Ru/bezier)
- •7.Кубический сплайн
- •8.Матрицы аффинных преобразований в пространстве.
- •9.Матрицы аффинных преобразований на плоскости.
- •10.Метод z-буфера
- •12.Методы количественной невидимости
- •Алгоритм Аппеля.
- •Методы двоичного разбиения пространства.
- •13.Методы решения задач загораживания
- •1.Метод переборного типа.(«грубой силы»).
- •18. Метод z-буфера.
- •14.Особенности проекций гладких отображений
- •16.Растровая развертка отрезка
- •17.Растровое представление геометрических объектов
- •18.Тест принадлежности точки многоугольнику
- •19.Фракталы
- •20.Фрактальное сжатие
- •21.Заполнение многоугольников
- •23.Алгоритм Варнака
- •26.Методы приоритетов, метод художника
- •27.Алгоритм Ву
8.Матрицы аффинных преобразований в пространстве.
Мы будем далее предполагать,
что в пространстве задана декартова
система координат
.
В такой системе координат точки задаются
тройками чисел
,
которые нам будет удобно записывать в
виде столбцов вида
.
Нас будут интересовать так называемыеиаффинные преобразования пространства. Это такие преобразования, при которых все прямые преобразуются снова в прямые. Оказывается, что все такие преобразования можно записать формулами вида

где
-
координаты исходной точки; те же буквы
со звёздочкой наверху обозначают
координаты точки, которая получается
в результате преобразования. Для
компактной записи этих формул весьма
полезно использовать матричные
обозначения. Именно, определим матрицу
и три столбца следующим образом:

Тогда приведённое выше
преобразование можно записать в форме
простого матричного равенства
.
В дальнейшем мы все преобразования
будем записывать в такой форме, указывая
при необходимости вид матрицы
.
Самым
простым преобразованием такого вида
является параллельный
сдвиг на
вектор
,
который определяется
формулой
.
Матрица
в
этом случае совпадает с единичной
матрицей
.
Сдвиг
на ненулевой вектор не имеет неподвижных
точек.
В общем случае можно определить,
имеет ли преобразование неподвижные
точки, решая систему уравнений
,
где
-
единичная матрица. Заметим, что если
матрица
невырожденная,
то есть, её определитель не равен
,
то эта система имеет единственное
решение
,
так что преобразование имеет единственную
неподвижную точку.
Если вектор
нулевой,
то преобразование имеет вид
.
Такое преобразование оставляет
неподвижным начало координат
.
Если
мы уже нашли преобразование нужного
вида (с матрицей
),
оставляющее неподвижным начало координат,
то очень легко найти преобразование
такого же вида, оставляющее неподвижной
заданную точку
.
Такое преобразование будет иметь вид
.
Поэтому в дальнейшем мы будем ограничиваться
преобразованиями, оставляющими
неподвижным именно начало кординат, то
есть, преобразованиями вида
.
Другой
простейший тип преобразований
- растяжения (сжатия)
вдоль прямой.
Растяжение вдоль оси
в
раз
задаётся, соответственно, матрицей
![]()
(при
получается
сжатие). Растяжение одновременно по
всем осям (вообще говоря, в разное число
раз) задаётся матрицей

Если все диагональные элементы в этой матрице одинаковые, то получается равномерное растяжение (сжатие), то есть, преобразование подобия.
Симметрии относительно
плоскостей
,
осей
и
точки
(начала
координат) задаются матрицами

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

Более
сложным классом преобразований
являются движения,
то есть, преобразования, сохраняющие
расстояния между точками. Матрица
,
определяющая движение, является ортогональной,
то есть, удовлетворяет условию
.
Это означает, что обратная матрица
должна совпадать с транспонированной.
Все
движения можно разбить на две
группы: собственные движения,
которые являются комбинациями вращений
и сдвигов и характеризуются тем, что
определитель матрицы
равен
,
и несобственные движения, которые
включают дополнительно симметрию
относительно плоскости или точки и
характеризуются тем, что определитель
матрицы
равен
.
Заметим,
что симметрию относительно прямой можно
рассматривать как вращение вокруг этой
прямой на угол
,
так что такие симметрии являются
собственными движениями.
Собственные
движения, имеющие неподвижную точку,
называются вращениями.
Как мы и договорились, будем предполагать,
что эта неподвижная точка совпадает с
началом координат
.
Самый простой случай -
поворот вокруг оси координат на заданный
угол. Матрица поворота на угол
вокруг
оси
соответственно
имеет следующий вид:
![]()
