
- •Введение.
- •Цели, задачи и структура курса.
- •Предмет компьютерной графики.
- •Сферы применения компьютерной графики.
- •Отображение информации.
- •Проектирование.
- •Моделирование.
- •Интерфейс пользователя.
- •Графическая система.
- •Объект и наблюдатель.
- •Визуализация изображений.
- •Растровая визуализация.
- •Векторная визуализация.
- •Цвет
- •Свет и изображение.
- •Глаз человека.
- •Характеристики цвета.
- •Цветовые модели.
- •Глубина цвета
- •Палитра
- •Координаты.
- •Прямоугольная система координат на плоскости.
- •Прямоугольная система координат в 3-x мерном пространстве.
- •Прямоугольная система координат в n-мерном пространстве.
- •Полярная система координат.
- •Графическое представление.
- •Трёхмерное расширение.
- •Цилиндрическая система координат.
- •Сферическая система координат.
- •Координаты в матричном виде.
- •Произведение матриц.
- •Преобразование координат.
- •Аффинные преобразования координат.
- •Аффинные преобразования координат на плоскости.
- •Однородные координаты.
- •Аффинные преобразования координат в трехмерном пространстве.
- •Преобразования объектов.
- •Аффинные преобразования объектов на плоскости.
- •Трехмерные аффинные преобразования объектов.
- •Композиция преобразований.
- •Эффективность преобразований.
- •Базовые растровые алгоритмы.
- •Связность.
- •Алгоритмы вывода прямой линии
- •Прямое вычисление координат.
- •Алгоритм Брезенхэма.
- •Алгоритм вывода окружности.
- •Алгоритм Брезенхэма построения окружности.
- •Растеризация многоугольника.
- •Алгоритм со списком реберных пересечений.
- •Алгоритм заполнения со списком активных ребер.
- •Заливка с затравкой.
- •Алгоритмы отсечения.
- •Отсечение отрезков.
- •Алгоритм Коэна-Сазерленда.
- •FC-алгоритм.
- •Алгоритм Лианга-Барски.
- •Двумерный алгоритм Кируса — Бека
- •Проверка выпуклости многоугольника и определение нормалей
- •Алгоритм с использованием векторных произведений
- •Разбиение не выпуклых многоугольников
- •Отсечение многоугольника
- •Алгоритм Сазерленда-Ходгмана
- •Простой алгоритм отсечения многоугольника
- •Алгоритм отсечения многоугольника Вейлера-Азертона
- •Удаление невидимых линий и поверхностей.
- •Алгоритм удаления поверхностей с Z-буфером.
- •Алгоритм разбиения области Варнока.
- •Алгоритм трассировки лучей.
Компьютерная графика.
Поворот вокруг оси x на угол α.
{X =x ,
Y =y cosα −z sin α , Z =y sin α + z cosα ,
Rx (α ) = [ |
1 |
0 |
|
0 |
|
0 |
0 |
cos α |
−sin α |
0 |
|||
00 |
sin0 |
α |
cos0 |
α |
10]. |
Поворот вокруг y оси на угол β.
{X =x cos β −z sin β , Y =y ,
Z =x sin β +z cos β ,
cos β |
0 |
−sin β |
0 |
||
0 |
|
1 |
0 |
|
0 |
Ry (β ) = [sin0 |
β |
00 |
cos0 |
β |
10]. |
Поворот вокруг z оси на угол γ. |
|
|
|
|
|
X =x cos γ − y sin γ , |
cos γ |
−sin γ |
0 |
0 |
|
sin γ |
cos γ |
0 |
0 |
||
{YZ ==zx ,sin γ + y cosγ , Rz (γ ) = [ |
|||||
00 |
00 |
01 |
10]. |
Композиция преобразований.
Матричная запись дает возможность наглядно описывать несколько преобразований, которые идут одно за другим. Например, если необходимо сначала выполнить преобразования
|
[y'1 ]= |
[ |
A |
] |
[1y |
], |
|
|
|
x ' |
|
|
|
x |
|
|
|
а потом — другое преобразование |
|
|
|
|
|
|
|
|
|
x ' ' |
[ |
|
] |
x ' |
|
|
|
то это можно описать как |
[y'1 ' ]= |
B |
[y1'], |
|
|
|||
] [y1'] = |
[ |
|
] |
[ |
A ] [1y |
]. |
||
[y'1 ' ]= [ B |
B |
|||||||
x ' ' |
x ' |
|
|
|
|
|
x |
|
Однако вместо двух преобразований можно выполнить только одно
-28-
Компьютерная графика.
x ' ' |
]= [ C |
x |
[y'1 ' |
] [1y], |
где матрица (С) равна произведению (В × А).
Эффективность преобразований.
Суммарная матрица двумерных преобразований в однородных координатах имеет вид:
A |
B |
C |
] |
T = [D0 |
E0 |
F1 |
Вычисление преобразованных однородных координат точки P с непосредственным использованием T в выражении P ·T требует 9 операций умножения и 6 операций сложения. Но так как третья однородная координата может быть выбрана равной 1, а третья строка T содержит единственный ненулевой элемент, равный 1, то преобразование декартовых координат может быть представлено в виде:
{X =Ax +By+C , Y = Dx+Ey +F ,
что требует уже только 4 операции умножения и 4 операции сложения, что существенно меньше. Таким образом, несмотря на то, что матрицы 3×3 удобны при вычислении суммарного преобразования, выполнение фактического преобразования координат следует производить с учетом реальной структуры матрицы преобразования.
-29-