ОСНОВЫ КОМПЬЮТЕРНОЙ ГРАФИКИ, часть 1 37
Здесь верхняя матрица размером 33
называется ортогональной.
Важным ее свойством является то, что обратная к ней матрица является
транспонированной:
T
=
−1
. Это полезно тем, что при вычислениях
достаточно поменять индексы местами и обратное преобразование
получается автоматически.
После перемножения любого числа матриц вида
, и
результирующая матрица всегда будет иметь вид:
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
1
0
0
0
333231
232221
131211
zyx
ttt
rrr
rrr
rrr
.
Здесь верхняя часть размером 33
определяет суммарный поворот и
масштабирование, а три коэффициента последней строки – суммарный
перенос.
Вопросы эффективности вычислений
Рассмотрим проблему ускорения вычислений в одной из самых
трудоемких операций компьютерной графики – операции поворота точки
относительно начала координат. Как было показано ранее, для ее
выполнения необходимо произвести 4 операции умножения, 2 операции
сложения, а также вычислить значения синуса и косинуса угла поворота.
Напомним вид формул поворота:
αα
SinyCosxx ⋅−⋅=
'
αα
CosySinxy ⋅+⋅=
'
Одним из наиболее часто встречающихся способов ускорения операции
поворота является отказ от вычисления синуса и косинуса угла во время
выполнения программы, и использование их заранее подсчитанных значений,
которые занесены в специальную таблицу. Например, в этой таблице могут
храниться значения синусов и косинусов углов поворота с шагом в 1 градус.
Тогда целое
количество градусов угла поворота может служить в качестве
индекса при извлечении соответствующих значений синусов и косинусов из
таблицы. Такой прием называется табличным поворотом.
Дополнительным способом ускорения операции поворота является
уменьшение количества операций умножения. Рассмотрим вывод формулы
О. Бьюнемана с использованием тангенса половинного угла, в которой