- •Алгоритм отсечения по прямоугольной области
- •Метод полутонов
- •Закраска гранично-связной области
- •Координаты и преобразования
- •Двумерные геометрические преобразования
- •Поворот вокруг фиксированной точки
- •3.Трехмерные геометрические преобразования
- •Движение по рельефу
- •Задается курсовой угол ку
- •Движение над рельефом
- •Обработка h при непосредственном синтезе изображения.
- •Нанесение текстур
- •4. Процедурные текстуры
- •4.2. Коррекция текстуры
- •4.5. Отсечение текстурных координат по полю вывода
- •5. Проективные текстуры
- •1. Основные законы освещения
- •Для полутоновых изображений так же можно использовать этот алгоритм, но
- •Так же трассировка лучей эффективна для обработки диффузных поверхностей. Так как в этом существует диффузное отражение, которое может быть получено
- •Поверхность может быть разбита на куски, каждый из которых будет описан
- •Область Вороного строится соединением серединных перпендикуляров в исход-
- •Область Вороного гарантирует, что любая точка этой области лежит ближе к то-
- •В отличие от рельефа объект изображается с использованием одного разреше-
- •Если к одной вершине присоединены несколько треугольников, то квадрик этой
- •Гипертриангуляция Заключает в себе триангуляции всех уровней разрешения. Но выигрыш в её
- •Цвет в компьютерной графике
- •Выводы: цветовое ощущение может быть получено при замене спектрального излучения на одну доминирующую и некоторую долю белого цвета.
- •Сложение цветов
- •Как видно из приведённой выше картинки , иллюстрирующей сложение цветов, пурпурный цвет (м) пропускает красный (r) и синий (b).
- •Вычитание цветов
- •1) Амплитудные преобразования
- •Степень полинома берут, начиная с 2, 3, 4, …
- •Поточечные
- •Не поточечные
- •Основные функции оконного преобразования
- •Считаем среднее значение этих точек и в результирующем изображении в точку с координатами (X y) записываем исходную точку.
- •Обратное преобразование
- •Частные случаи линейных преобразований
- •Сравним s и s :
- •Теоретико-числовые преобразования
- •Пояснение
- •Следствие
- •Теорема Ферма-Эйлера –2 в кольце целых чисел по модулю m всегда найдутся числа a,m такие, что
Координаты и преобразования
Описание, конструирование, манипулирование и представление геометрических объектов являются центральными работами в графических системах. Их поддержка в требуемом объеме за счет соответствующих математических методов, алгоритмов и программ оказывают существенное влияние на возможности и эффективность графической системы. В данном разделе будут рассмотрены математические методы для описания геометрических преобразований координат в двух и трехмерном случае, будут обсуждены некоторые вопросы эффективности, рассмотрены геометрические преобразования растровых картин.
Далее большими буквами x, y, z будут обозначаться обычные декартовые координаты, а маленькие буквы X, Y, Z будут использоваться для обозначения т.н. однородных координат.
Двумерные геометрические преобразования
Параллельный перенос
Параллельный перенос в плоском случае имеет вид:
x` = x + Dx
y` = y + Dy
[x’, y’] = [x, y] + [Dx, Dy]
P’ P T
или в векторной форме:
P`=P+T, |
где P`= [x` y`] - вектор-строка преобразованных координат,
где x, y - исходные координаты точки, Tx, Ty - величина сдвига по осям, x`, y` - преобразованные координаты. P= [x y] - вектор-строка исходных координат,P`= [x` y`] - вектор-строка преобразованных координат,T= [Tx Ty] - вектор-строка сдвига.
Масштабирование
Преобразование масштабирования относительно начала координат имеет вид:
x` = x Sx
y` = y Sy или
Sx 0
[x`, y`] = [x, y]
0 Sy
P` P
S
или в матричной форме:
P` = P ·S, |
где Sx, Sy - коэффициенты масштабирования по осям, а
S - матрица масштабирования
Поворот
Преобразование поворота относительно начала координат имеет вид:
x`= xcos(φ) – ysin(φ)
y`= xsin(φ) + ycos(φ)
или
cos(φ) sin(φ)
[x`, y`] = [x, y]
–sin(φ) cos(φ)
P` P
R
Где R– матрица поворота
φ – положительный угол поворота
или в матричной форме:
P` = P ·R, |
|
Столбцы и строки матрицы поворота представляют собой взаимно ортогональные единичные векторы. В самом деле квадраты длин векторов-строк равны единице:
cos·cos+sin·sin= 1 и |
(-sin) ·(-sin)+cos·cos= 1, |
а скалярное произведение векторов-строк есть
cos·(-sin) + sin·cos= 0. |
Так как скалярное произведение векторов A·B=A·B·cos, гдеA- длина вектораA,B- длина вектораB, а- наименьший положительный угол между ними, то из равенства скалярного произведения двух векторов-строк длины 1 следует, что угол между ними равен 90.
Аналогичное можно показать и для векторов-столбцов. Кроме того вектора-столбцы представляют собой такие единичные векторы, которые после выполнения преобразования, заданного этой матрицей, совпадут с осями. В самом деле, произведение первого столбца на матрицу есть
|
|
|
cos |
-sin |
|
|
· |
|
|
cos |
sin |
|
|
= |
|
|
1 |
0 |
|
|
, |
|
-sin |
cos |
|
т.е. это единичный вектор вдоль оси X. Аналогично, произведение второго столбца на матрицу даст вектор [ 0 1 ]. Это позволяет сформировать матрицу, если известны результаты преобразования.
Преобразование в однородную систему координат
Как видно двумерные преобразования имеют различный вид. Сдвиг реализуется сложением, а масштабирование и поворот - умножением. Это различие затрудняет формирование суммарного преобразования и устраняется использованием двумерных однородных координат точки, имеющих вид:
[ X Y W]. |
Здесь W - произвольный множитель не равный 0.
Двумерные декартовые координаты точки получаются из однородных делением на множитель W:
x = X / W, y = Y / W, W 0 |
|
Однородные координаты можно представить как промасштабированные с коэффициентом W значения двумерных координат, расположенные в плоскости с Z = W.
В силу произвольности значения W в однородных координатах не существует единственного представления точки, заданной в декартовых координатах.
Преобразования параллельного переноса, масштабирования и поворота в однородных координатах относительно центра координат все имеют одинаковую форму произведения вектора исходных координат на матрицу преобразования.
Будем брать W=1.
Параллельный перенос:
1 0 0
[X`, Y`, 1]=[X, Y, 1] 0 1 0
Dx Dy 1
Перемножив, получим: [X+Dx,Y+Dy, 1].
Масштабирование:
P` = PS; где
Поворот:
Рё = РR; где