Основы современных компьютерных технологий

         

Преобразование и проекция изображений


Вывод изображения и операции с ним требуют от программиста и пользователя определенной геометрической грамотности. Геометрические соображения, подходы и идеи в coчетании с постоянно расширяющимися возможностями вычислительной техники способствуют эффективному использованию компьютерной графики для в различных областях деятельности.

368

Изображение объектов связано в первую очередь с геометрическими операциями преобразования на плоскости и в пространстве и проекции.

Преобразования с использованием однородных координат

В компьютерной графике изображение на плоскости принято обозначать символом 2D (2-dimension). На плоскости в прямоугольной декартовой системе координат каждая точка М задается парой координат (х, у).

В преобразованиях на плоскости можно выделить несколько частных случаев, или видов преобразования точки М с координатами (х, у) в точку М* с координатами (х*, y*):

А. Поворот вокруг некоторой начальной точки на угол (р (рис. 26.5). Описывается формулами:

Рис. 26.5. Поворот на угол ?

В. Растяжение (сжатие) вдоль координатных осей (рис. 26.6). Задается формулами:

х* = ах,

y* = dy,

где а и d - коэффициенты сжатия соответственно по осям X и Y.

Рис. 26.6. Растяжение вдоль координатных осей

369

С. Отражение относительно координатной оси. На рис. 26.7 показано отражение относительно оси абсцисс, описываемое формулами:

х* =х,



y*=-y

Рис. 26.7. Отражение относительно оси X

D. Перенос на вектор ММ* с координатами (I, т) (рис. 26.8). Описывается соотношениями:

х*=х + I,

у* =у + m.

Рис. 26.8. Перенос на вектор (I, т)

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

Эти классические геометрические преобразования удобно описывать с помощью матриц. При этом каждое из основных преобразований представляется отдельной матрицей. Для компьютерной графики во многих случаях это приводит к увеличению объема вычислений и возникает необходимость в использовании математического аппарата, обеспечивающего более компактное описание геометрических преобразований.
Наибольшее распространение получил метод однородных координат.

Основа этого метода состоит в том, что каждая точка в Л/-мерном пространстве может рассматриваться как проекция точки из (N+1)- мерного пространства. Так, точка в двухмерном пространстве представляется тремя составляющими х, у, w, где поможет принимать любое значение. Обычно используют w= 1, что соответствует нормализованным координатам (х, у, 1). Таким образом, при решении задач компьютерной графики одно-

370

родные координаты вводятся так, что произвольной точке М (х, у) ставится в соответствие точка М*(х, у, 1) (рис. 26.9).

Рис. 26.9. Однородные координаты точки М

Свойства однородных координат позволяют выражать с помощью одной матрицы все преобразования - повороты, растяжения, отражения и сдвиги, а так же любые их комбинации - в виде произведения матриц.

Для двухмерного случая компьютерной графики однородные координаты исходной точки М и преобразованной точки М* связаны между собой следующим соотношением:

[х* у* 1] = [x y 1]

a11 a12 a13
a21 a22 a23
a31 a32 a33
Основные преобразования выражаются с помощью соответствующих частных матриц: поворот на угол ?

[R] =
cos? sin ? 0
-sin ? cos? 0
0 0 1
растяжение вдоль координатных осей с коэффициентами ? и ?

[D] =
? 0 0
0 ? 0
0 0 1
отражение (относительно оси абсцисс)

[M]=
1 0 0
0 -1 0
0 0 1
371

перенос на вектор (?, ?)

[T]=
1 0 0
0 -1 0
? ? 1
При выполнении любого преобразования на плоскости оно разбивается на отдельные этапы, описываемые матрицами [R], [D], [M], [T].

Для случая трехмерной графики однородные координаты исходной точки М и преобразованной точки М* связаны между собой следующим соотношением:

[x* y* z* 1]=[x y z 1]
a11 a12 a13 a14
a21 a22 a23 a24
a31 a32 a33 a34
a41 a42 a43 a44
При этом основные преобразования выражаются с помощью матриц следующим образом: Поворот на угол вокруг оси X

[Rx] =
1 0 0 0
0 cos ? sin ? 0
0 0 0 1
<


/p> поворот на угол вокруг оси Y

[Ry] =
cos ? 0 -sin ? 0
0 1 0 0
sin ? 0 cos ? 0
0 0 0 1
поворот на угол вокруг оси Z

[Rz] =
cos ? sin ? 0 0
-sin ? -cos ? 0 0
0 0 1 0
0 0 0 1
372

сдвиг на вектор (?, ?, v)

[T]=
1 0 0 0
0 1 0 0
0 0 1 0
? ? v 1
отражение относительно координатных осей

[M] =
p 0 0 0
0 q 0 0
0 0 r 0
0 0 0 1
Совокупность операций по преобразованию координат предмета, как и в случае двухмерной графики, описывается произведением матриц, которое затем приводится к единой матрице для всех точек предмета.

Предположим, что задан поворот предмета на угол вокруг оси, параллельной осп X, и на угол вокруг оси Z, проходящих через точку предмета с координатами (х0, y0, z0). Данное преобразование описывается произведением четырех матриц: матрицы ТГ описывающей сдвиг для совмещения точки (х0, y0, z0) с началом координат; двух матриц Rх и Rz, описывающих повороты вокруг соответствующих осей; матрицы T2 описывающей сдвиг для возвращения точки (х0, y0, z0) в первоначальное положение.

Результирующая матрица А имеет вид M=T1RxRzT2


Содержание раздела