- •Список лабораторных работ
- •Понятие компьютерной графики
- •История и перспективы развития кг
- •Основные области применения компьютерной графики
- •Графические стандарты
- •Принципы формирования изображений в пк
- •Принцип действия видеосистемы пк
- •Структура ram dac
- •Программирование графики Pascal abc
- •Преобразование на плоскости 2 d и в пространстве 3 d
- •Удаление невидимых линии и поверхностей
- •(Алгоритм отсечение нелицевых граней)
- •Алгоритм плавающего горизонта
- •Ортографические проекции
- •Изометрия и диметрия
- •Закрашивание
Преобразование на плоскости 2 d и в пространстве 3 d
2 D - преобразования
Любое преобразование на плоскости можно представить как последовательность 4 простейших преобразований:
1. Поворот 2. Растяжение 3. Отражение 4. Перенос
Данные преобразования могут описываться с помощью математических моделей, основанных на использовании матриц. Наиболее компактное описание указанных геометрических преобразований получается при использовании метода однородных координат.
В основе этого метода лежит представление о том, что каждая точка в N - мерном пространстве может рассматриваться как проекция точки из (N + 1) - мерного пространства. В частности, точка в 2-х мерном пространстве представляется тремя составляющими hx, hy, h , где h - может принимать любое значение. На практике h=1, что соответствует нормализованным координатам (x,y,1).
Свойства однородных координат позволяет выражать с помощью матриц 4 основных преобразования, а также любые сочетания преобразований в виде произведения этих матриц. Таким образом, использование однородных координат позволяет применять единый математический аппарат для пространственных преобразований.
Для 2 D - преобразования (X*, Y*, 1) = (X, Y, 1) * | A | ,
где (X, Y, 1) - координаты исходной точки, | A | - матрица преобразования, (X*, Y*, 1) - координаты точки после преобразования.
Матрица вращения:. Матрица растяжения:
Матрицы отражения (относительно осей x или y): ,.
Матрица переноса:
3 D – преобразования
При использовании метода однородных координат точка в 3-х мерном пространстве представляется четырьмя составляющими hx, hy, hz, h , где h - может принимать любое значение. На практике h=1, что соответствует нормализованным координатам (x, y, z, 1).
Для 3D - преобразования (X*, Y*, Z*, 1) = (X, Y, Z, 1) * | A | ,
где (X, Y, Z, 1) - координаты исходной точки, | A | - матрица преобразования, (X*, Y*, Z*, 1) - координаты точки после преобразования.
Матрица вращения вокруг оси Х: . |
Матрица вращения вокруг оси Y:
|
Матрица вращения вокруг оси Z: . |
Матрица растяжения:. |
Матрица отражения относительно плоскости XY: .
Матрица отражения относительно плоскости YZ: . |
Матрица отражения относительно плоскости ZX: . |
Матрица переноса: .
В качестве примера рассмотрим матрицу вращения А одновременно вокруг двух осей (относительно оси Y на угол w, а относительно оси Х на угол f) с последующим проектированием вдоль оси Z.
Удаление невидимых линии и поверхностей
Необходимость удаления невидимых линий, ребер, поверхностей или объемов обусловлена прежде всего двумя причинами:
1. Наглядность.
2. Неоднозначность.
Несмотря на кажущуюся простоту, эта задача является достаточно сложной и требует зачастую больших объемов вычислений. В качестве возможных видов проектирования обычно рассматривается параллельное либо центральное (перспективное) проектирование. Проектирование осуществляется на картинную (визуальную) плоскость экрана. Проектирующий луч к картинной плоскости проводится через каждую точку объекта. При этом видимыми будут те точки, которые вдоль направления проектирования ближе всего расположены к картинной плоскости. Задача удаления невидимых линий при ортогональной проекции значительно упрощается, чем при центральном проецировании. Дело в том, что при удалении невидимых линий при центральном проецировании необходимо определять координаты точек пересечения граней объекта с лучами, исходящими из точки наблюдения. Поэтому значительная часть алгоритмов ориентирована на ортогональное проецирование. Если же необходимо применить алгоритм удаления невидимых линий, использующий ортогональное проецирование, а изображение получит в центральной проекции, то сначала надо преобразовать исходную форму объектов в ту форму, которую они получили бы после центрального проецирования.
Алгоритмы удаления невидимых линий или поверхностей можно классифицировать по способу выбора системы координат или пространства, в котором они работают. Алгоритмы удаления невидимых поверхностей условно подразделяют на три большие группы:
алгоритмы, оперирующие в объектном пространстве;
алгоритмы, оперирующие в пространстве изображений.
смешанные алгоритмы.