Вывод изображения и операции с ним требуют от программиста и пользователя определенной геометрической грамотности. Геометрические соображения, подходы и идеи в 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 |
cos? | sin ? | 0 |
-sin ? | cos? | 0 |
0 | 0 | 1 |
? | 0 | 0 |
0 | ? | 0 |
0 | 0 | 1 |
1 | 0 | 0 |
0 | -1 | 0 |
0 | 0 | 1 |
1 | 0 | 0 |
0 | -1 | 0 |
? | ? | 1 |
a11 | a12 | a13 | a14 |
a21 | a22 | a23 | a24 |
a31 | a32 | a33 | a34 |
a41 | a42 | a43 | a44 |
1 | 0 | 0 | 0 |
0 | cos ? | sin ? | 0 |
0 | 0 | 0 | 1 |
cos ? | 0 | -sin ? | 0 |
0 | 1 | 0 | 0 |
sin ? | 0 | cos ? | 0 |
0 | 0 | 0 | 1 |
cos ? | sin ? | 0 | 0 |
-sin ? | -cos ? | 0 | 0 |
0 | 0 | 1 | 0 |
0 | 0 | 0 | 1 |
1 | 0 | 0 | 0 |
0 | 1 | 0 | 0 |
0 | 0 | 1 | 0 |
? | ? | v | 1 |
p | 0 | 0 | 0 |
0 | q | 0 | 0 |
0 | 0 | r | 0 |
0 | 0 | 0 | 1 |