- •Векторная графика – область кг, в которой изображение генерируется с помощью команд визуализации и координат данных.
- •Аппаратное и программное обеспечение компьютерной графики.
- •Векторная графика – область кг, в которой изображение генерируется с помощью команд визуализации и координат данных.
- •Системы координат в компьютерной графике (мировые, нормированные, координаты устройства).
- •Мировые координаты à Нормированные координаты à Координаты устройства
- •4.Аффинные преобразования на плоскости (2d). Основные виды (2d) аффинных преобразований. Композиция преобразований .
- •5.Проекции . Центральное и перспективное проецирование. Основные виды проекций.
- •1. Матрицы вращения в пространстве.
- •2. Матрица растяжения (сжатия):
- •3. Матрица отражения.
- •6.Алгоритмы удаление невидимых линий и поверхностей. Основные классы алгоритмов.
- •7. Цветовые модели в компьютерной графике. Модели rgb и cmy (cmyk).
- •Цветовые модели и их виды
- •Цветовые модели cmy и cmyk
- •Локальные модели освещения
Мировые координаты à Нормированные координаты à Координаты устройства
Преобразование координат – перенос описания изображения из одной системы координат в другую.
Видовые преобразования – преобразования из мировых координат в координаты устройства.
Отсечение – удаление элементов, лежащих вне границы окна или поля ввода.
Окно – выделенная часть виртуального пространства в мировых координатах.
П
оле
ввода –
определенная прикладной программой
область в нормированных координатах
или координатах устройства.
horfact = X_max / x_max
verfact = Y_max / y_max
IX = (int)(x•horfact + 0,5)
IY = (int)Y_max – (int)(y•verfact + 0,5)
4.Аффинные преобразования на плоскости (2d). Основные виды (2d) аффинных преобразований. Композиция преобразований .
Геометрическое преобразование – взаимно однозначное, точечное отображение плоскости XOY в плоскость UOV.
Афинное преобразование – геометрическое преобразование, при котором сохраняются прямые линии, отношение длин отрезков, лежащих на одной или параллельных прямых и отношение площадей фигур.
На плоскости введена прямолинейная координатная система. Тогда каждой точке М ставится в соответствие упорядоченная пара чисел (х,y) ее координат (Рис.1). Вводя на плоскости еще одну прямолинейную систему координат, мы ставим в соответствие той же точке М другую пару чисел – (х*, y*).
Переход от одной прямолинейной координатной системы на плоскости к другой описывается соотношением:
х*=
αх
+βy
+λ, y*=γx
+δy
+μ
(1) , где α,β,λ,γ,δ,μ
– произвольные числа, связанные с
неравенством
Формулы (1) можно рассматривать двояко: либо сохраняется система координат и изменяется положение точки, либо изменяется система координат и сохраняется положение точки. Будем рассматривать формулы (1), как правила, согласно которым в заданной системе прямолинейных координат преобразуются точки плоскости.
Рассмотрим несколько частных случаев.
1. Поворот вокруг начальной точки на угол φ.
x* = x cosφ - y sinφ.
y*
= x sinφ
- y cosφ.
2. Растяжение (сжатие) вдоль координатных осей
x* = α x
y
*
= δ
y
α – коэффициент масштабирования вдоль оси Х
δ – коэффициент масштабирования вдоль оси Y
α = δ – однородное масштабирование, α ≠ δ – неоднородное масштабирование.
Если коэффициент масштабирования больше 1 – то растяжение, если коэффициент от 0 до 1 - то сжатие.
3. Отражение
Отражение относительно оси x (x* = x, y* = -y).
Отражение относительно оси y (x* = -x, y* = y).
4. Перенос (перемещение)
x* = x + λ
y
*
= y
+ μ
Композиция 2D преобразований.
Композиция – последовательность отдельных видов преобразований. Композиция преобразований представляется произведением матриц. Композиция позволяет применить одно результирующее преобразование вместо нескольких исходных.
Например, поворот точки Р вокруг произвольной точки.
Композиция преобразований:
перенос центра поворота в начало координат
поворот вокруг начала координат
перенос из начала координат в первоначальное положение.
M = T1 R T2
(x0, y0) – точка начала поворота.
T1→ [-x0, -y0]
R→φ
T2→ [x0, y0]
Эффективность реализации 2D преобразований.
О
бщая
матрица 2D
преобразований имеет вид:
Для вычисления нового положения точки, как произведения [x y 1] M, требуется 9 операций умножения и 6 операций сложения. Если проводить вычисления на основе систем уравнений нужно 4 операции умножения и 4 операции сложения. Если преобразования выполнять для большого числа точек, то вопрос эффективности становится более актуальным. Для реализации поворота необходимо 4 операции умножения и 2 операции сложения. Повысить эффективность программ можно следующими способами:
введение таблицы углов и значений геометрических функций.
при повороте на малые углы cosφ ≈ 1
применение аппроксимации вида x* = x –ysinφ, y* = xsinφ +y.
При наличии погрешности вычислений возможно искажение изображений.
Аффинные преобразования в пространстве(3D). Основные виды (3D) аффинных преобразований. Композиция преобразований .
В
ведем
однородные координаты. Заменим
координатную тройку (x,y,z),
задающую точку в пространстве, на
четверку чисел (x,y,z,1)
или на четверку (hx,hy,hz,h),
h≠0.
Предложенный переход к новому способу
задания точек дает возможность
воспользоваться матричной записью в
трехмерных задачах. Все преобразования
представляются матрицей 4х4. Система
координат является правосторонней.
Любое аффинное преобразование может
быть представлено в виде композиции
вращений, растяжений (сжатий), отражений
и переносов. Положительными считаются
повороты при которых (если смотреть с
конца положительной полуоси в начало
координат), поворот на 90° против часовой
стрелки будет переводить одну положительную
ось в другую. Если ось вращения х, то
положительный поворот от y
к x.
Если вдоль оси y,
то от z
к х. Если ось вращения z,
то от x
к y.
