- •Конспект лекцій
- •1. Машинная графика. Основные понятия 6
- •2 Преобразования в компьютерной графике 17
- •3. Технические средства мг 39
- •4. Трехмерная графика 55
- •Введение
- •1. Машинная графика. Основные понятия
- •1.1. Концептуальная модель машинной графики
- •1.2 Программирование
- •1.2.1 Координатные пространства
- •1.2.2 Текущее положение
- •1.2.3 Примитивы вывода и атрибуты.
- •1.2.4 Видовые операции
- •1.2.5 Относительные координаты
- •2 Преобразования в компьютерной графике
- •2.1 Общая архитектура графической системы
- •2.3 Геометрические преобразования
- •2.3.1 Основные математические операции
- •2.3.2 Двумерные преобразования
- •2.3.3 Однородные координаты и матричное представление двухмерных преобразований
- •2.3.4 Композиция двумерных преобразований.
- •2.3.5 Вопросы эффективности
- •2.4 Растровая развертка примитивов.
- •2.4.1 Развеpтка векторов. Тангенсный алгоритм
- •2.4.2 Алгоритм Брезенхема
- •2.4.3 Растровая развертка окружностей
- •2.4.4 Заполнение областей
- •2.4.5 Отсечение примитивов вывода
- •2.4.6 Отображение окна на поле вывода
- •3. Технические средства мг
- •3.1. Архитектура систем мг
- •3.2 Кадровое запоминающее устройство
- •3.3. Видеоконтроллеры
- •4. Трехмерная графика
- •4.1 Трехмерные координатные пространства. Матричное представление трехмерных преобразований
- •4.2 Изображения трехмерных объектов
- •4.3 Проекции
- •4.4 Представление пространственных форм
- •4.4.1 Представление поверхностей полигональной сеткой
- •4.4.2 Задание плоскости
- •4.4.3 Бикубические поверхности
- •4.5. Алгоритмы удаления скрытых линий и поверхностей
- •4.5.1 Трехмерное отсечение
- •4.5.2. Удаление скрытых линий и поверхностей
- •4.6. Алгоритмы фотореалистичной закраски
- •4.6.1 Модель освещения
- •4.6.2. Однотонная закраска
- •4.6.3 Закраска методом Гуро
- •4.6.4 Метод закраски Фонга
- •4.6.5 Определение нормалей к поверхности, вершинам, ребрам
- •4.6.6 Определение вектора отражения
2.3 Геометрические преобразования
2.3.1 Основные математические операции
Геометрические
преобразования в МГ как правило связаны
с матрицами. Напомним основные понятия
матричного исчисления. М а т р и ц а - это
таблица коэффициентов размерностью
Элементы
называют элементами матрицы.
Операции с матрицами.
1. Две матрицы
А =
и
В =
размера (
) равны друг другу ( А = В) в том и только
в том случае, если aik
= bik .
2. Сумма двух
матриц A =
и B =
размера (
)
есть матрица размера (
):
A + B =
+
=
A
+ B =
+
=
3. Произведение матрицы А = размера ( ) на скаляр u есть матрица размера ( ):
=
4. Произведение
матрицы А =
размера (
) на матрицу
B =
размера (
)
есть матрица размера (
)
:
C =
=
где
*
=
Более подробные сведения по матричным операциям можно получить в любой литературе по матричным вычислениям.
2.3.2 Двумерные преобразования
Одна из наиболее распространенных задач МГ заключается в определении местоположения пикселя после его поворота, сдвига, масштабирования.
П е р е н о с .
Точки на плоскости Х, У переносятся в новые позиции путем добавления констант к их координатам. Для каждой точки Р(х,у), которая перемещается в точку Р'(х',у') путем сдвига на Dx единиц по оси Х и на Dy единиц по оси У, записываются уравнения :
X'= X + Dx Y'= Y + Dy (2.12)
На Рис. 2.13 показана точка с координатами (3,3) и перемещенная точка с координатами (8,7). Если определить вектор - строки
Р = [X Y] Р' = [X' Y'] T = [ Dx Dy ],
то уравнение (3.12) перепишется в виде:
[X' Y'] = [X Y] + [Dx Dy] (2.13)
или
Р' = Р + T (2.14)
Рис. 2.13. Перенос точки и объекта
Если речь идет о переносе объекта, то уравнение (2.12) применяется к каждой его точке. Однако, при использовании относительных координат можно перенести только его начальную точку (заданную, например, процедурой MoveTo модуля Graf Турбо-Паскаля), а при использовании абсолютных координат перенести только конечные точки отрез ков (Рис.2. 13 б, в).
М а с ш т а б и р о в а н и е. Точку можно "промасштабировать" с коэффициентом Sx вдоль оси Х и с коэффициентом Sy вдоль оси У:
X' = X * Sx Y' = Y * Sy (2.15)
Определив S как
тогда можно записать в матричной форме :
[
X' Y'] = [ X Y]
(2.16)
или
Р' = Р* S (2.17)
Рис.2.14. Масштабирование точки и объекта
На Рис.2.14 а) отдельная точка Р (3,2) масштабируется с коэффициентами Sx=3 и Sy= 2,5 . Следует заметить, что масштабирование осуществляется относительно начала координат, что вызывает не только изменение масштаба изображения объекта, но и изменение его положения относительно начала координат (Рис.2. 14 б, в).
П о в о р о т. Точки могут быть повернуты на угол относительно начала координат, как показано на Рис.2. 17. Математически поворот точки определяется следующим образом:
(2.18)
или, в матричной форме:
[X'
Y'] = [X
Y] *
(2.19)
или
Р' = Р* R (2.20)
где R - матрица поворота.
При повороте объекта уравнение (2.18) или (2.19) необходимо применять к каждой точке объекта. При задании объекта примитивами преобразование производится над конечными точками примитивов (Рис.2. 15 б, в).
При повороте положительными считаются углы, измеряемые против
Рис. 2.15 Поворот точки и объекта
движения часовой стрелки от оси Х к оси У. В случае отрицательных углов
можно воспользоваться тождествами :
cos (- )= cos
sin (- ) = - sin .
Уравнение (3.17) легко получить из Рис.2. 19, на котором точка Р(х,у) переводится в точку Р'(х',у') поворотом на угол . Поскольку поворот производится относительно начала координат, расстояние от него до Р и Р' равны. Обозначим их через r. Тогда
x = r * cos y = r * sin (2.21)
и
x'= r cos ( +) = r cos cos - r sin sin (2.22)
y'= r sin (+ ) = r cos sin + r sin cos
Подставив (2.19) в уравнение (2.20) получим уравнение (2.17).
Рис.2. 19. Вывод уравнения поворота
