- •Введение
- •Отображение просранства пользователя и машинного носителя
- •Расчет пользовательских и машинных координат
- •Алгоритмы генерирования линий.
- •Генерирование отрезка прямой. Алгоритм Брезенхема
- •Формирование дуги окружности.
- •Кривые Безье.
- •Двумерное отсечение
- •Отсечение прямоугольным окном. Алгоритм Сазерленда-Коуэна.
- •Отсечение выпуклым многоугольным окном. Алгоритм Кируса-Бэка
- •Определение выпуклости многоугольника.
- •Отсечение невыпуклым многоугольником.
- •Заливка областей.
- •Заливка с сортировкой
- •Заливка по ребрам.
- •Cписок активных ребер.
- •Заливка с затравкой.
- •Преобразование координат
- •Преобразования координат в двумерной системе.
- •Преобразования в трех мерной системе координат
- •Двумерные проекции
- •Виды проекций
- •Перспективные проекции
- •Определение координат точки на плоскости проекции
- •Xэ, Yэ - оси системы координат на плоскости проекции (на экране).
- •Точки и линии схода
- •Косоугольные проекции
- •Аксонометрическая проекция
- •Построение проекций трехмерных объектов
- •Затенение отрезка плоскостью при перспективной проекции
- •Удаление затеняемых ребер в аксонометрической проекции
- •Алгоритмы параллельной обработки графической информации
- •Построение сечения объекта.
Определение координат точки на плоскости проекции
Разобьем общую задачу перспективногопроецирования на две задачи преобразования координат:
преобразование для перехода из мировой системы координат в видовую систему координат
преобразования для перехода из видовой системы координат в координаты на плоскости проекции.
Переход в видовую систему координат
Переход в видовую систему координат иллюстрируется ниже приведенным рисунком (Рис. 6.2 -57).
Видовая система координат представляет собой такую трехмерную систему координат с координатными осями Xв, Yв, Zв, которая «удобна» для заданной проекции, т.е. из которой наиболее просто осуществляется переход в двумерную систему на плоскости проекции (например, экран). Для данного вида перспективной проекции начало видовой системы координат должно находиться в точке E, ее ось Zв должна совпадать с вектором проекции V, ее ось Xв должна проецироваться на ось X э, а ее ось Y в должна проецироваться на ось Y э.
ч
Рис. 6.2‑57
Исходя из этого, переход из мировой системы координат в видовую можно выполнить за счет следующей последовательности базовых преобразований:
перенос мировой системы координат на вектор V, в результате чего будет получена система координат c началом в точке E и координатными осями X1, Y1, Z1 (реализуется матрицей Т-1(-Vx, -Vy, -Vz));
поворот полученной системы на угол (-(900-)относительно ее координатной оси Z1, в результате чего будет получена система с координатными осями X2, Y2, Z2 (реализуется матрицей Rz-1(-(900-, в которой вектор V находится в координатной полскости Y2, Z2
поворот полученной системы E, X1, Y1, Z1 на угол ((1800- относительно ее координатной оси X2, в результате чего будет получена система с координатными осями X3, Y3, Z3, начало которой находится в точке E, (реализуется матрицей Rx-1(1800-, в которой вектор V располагается на оси Z3
смена направления координатной оси X3, в результате чего будет получена нужная видовая система координат с координатными осями Xв, Yв, Zв (реализуется матрицей R(-x)).
Таким образом, учитывая четыре базовых преобразования координат, для перехода в видовую систему координат необходимо использовать следующее произведение матриц:
Для задания используемых матриц представим все их элементы через тригонометрические функции sin , cos, sin , cos и введем обозначения:
cosa; sin b; cosс; sin d;
ux = -bc; uy = -bd; uz =-a.
С этой целью представим перечисленные в выше приведенном выражении матрицы в следующем виде.
Матрица переноса:
T-1(ux, uy, uz)= T(-ux, -uy, -uz).
Такой представление правомерно, так как обратная матрица переноса на вектор эквивалентна прямой матрицы переноса на этот же вектор в обратной направленности.
C учетом введенных обозначений будем иметь:
Матрицы поворота относительно оси Z1:
Rz-1(-(900- Rz(900-
и, учитывая, что sin (900-cos можно записать:
Матрицы поворота относительно координатной оси X2:
Rx-1((1800- Rx (-(1800-,
и, учитывая, что sin (-(1800-=- sin cos (-(1800-=- cos имеем:
Матрица смены направления координатной оси X2 имет вид:
Найдем матрицу видового преобразования Rв:
Определим порядок умножения матриц согласно скобок в записи:
Найдем R1:
Найдем произведение:
При нахождении матрицы видового преобразования Rв, учтем необходимость расширения матрицы R2 из размерности 3*3 до размерности 4*4:
где:
Таким образом, матрица видового преобразования имеет вид:
(6.2-1)
Переход из видовой системы к координатам на плоскости проекции.
Для выполнения этого этапа используем ниже приведенный рисунок ().
Рис. 6.2‑58
На рисунке приняты следующие обозначения:
Е – начало видовой системы координат с координатными осями Xв, Yв, Zв;
Т1 – точка в видовой системе координат, расположенная на координатной плоскости XвZв;
Т2– точка в видовой системе координат, расположенная на координатной плоскости YвZв;
d - расстояние от начала видовой системы координат до плоскости проекции;