Краткие теоретические сведения. «Представление графической информации (ГИ) и базовые операции с ней»
«Представление графической информации (ГИ) и базовые операции с ней»
Наиболее важно сразу понять, как представляется ГИ и операции работы с ней в компьютере (кратко для случая двухмерного пространства). Этот материал базовый, он понадобится Вам для выполнения лабораторных работ, курсовой работы, при ответе на вопрос на экзамене. Краткая справка по этому поводу. Преобразование точки Точка на плоскости представляется двумя координатами: |x y|. Матрица преобразования точки – квадратная, (2*2). Ниже показано преобразование точки через квадратную матрицу; здесь xn = xa + yc и yn = xb + yd – новые координаты точки после преобразования. ![]() |
,
Однородные координаты Любая система координат, в которой представление точки в двухмерном пространстве задается при помощи трех координат (Р1, Р2, Р3), называется системой однородных координат. Вообще, для n-мерного пространства число однородных координат должно быть на единицу больше: n + 1. Применение однородных координат в общем случае позволяет устранять аномалии, возникающие при работе в декартовых координатах, и представлять сложные преобразования в виде произведения нескольких матриц. Геометрическая интерпретация на случай двухмерного пространства: введение третьей координаты, равной единице, можно трактовать как переход в трехмерное пространство, в котором разрешено работать только в плоскости z = 1. Следует представлять себе, что экран компьютера (картинная плоскость, плоскость изображения) находится в плоскости z = 1. В случае выхода рисунка за сечение z = 1 рисунок возвращается принудительно в данное сечение – для того, чтобы были возможны последующие операции. Математически это означает деление всех компонент вектора координат на третью компоненту, при этом третья становится равной 1. Такая операция называется нормализацией однородных координат. |
Общий вид преобразования
Операция cмещения
Матрица преобразования содержит в себе константы m и n, под действием которых точка смещается на m единиц вдоль оси x и на n единиц - вдоль оси y:
Операция масштабирования За счет коэффициентов a и d матрицы преобразования происходит увеличение (или уменьшение) значения координат точки (x, y) в a и d раз по осям x и y соответственно: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Приложение 3.
ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ
Задача 1
Рассчитать в однородных координатах новое положение фигуры АВС при повороте ее на угол 30 градусов в двухмерном пространстве вокруг точки В.
А(3,3), В(6,3), С(4,1).
Решение и ответ задачи 1.
3 3 1 6 3 1 4 1 1 | * | 0,85 0,52 0 -0,52 0,85 0 2,46 -2,67 1 | = | 3,45 1,44 1 6,00 3,00 1 5,34 0,26 1 |
Задача 2
Вычислите, как выглядит трехмерный куб со стороной равной 2, установленный одной вершиной в начало трехмерных координат, с ребром, совпадающим с осью ОY, и перпендикулярным ему ребром, лежащим в плоскости ZOX под углом 45 градусов к оси Х при перспективном проецировании его на плоскость XOY из точки (zc=10, yc=0, xc=0)
0 0 0 1 1.41 0 1.41 1 0 0 2.82 1 -1.41 0 1.41 1 0 2 0 1 1.41 2 1.41 1 0 2 2.82 1 -1.41 2 1.41 1 | * | 1 0 0 0 0 1 0 0 0 0 0 -0.1 0 0 0 1 | = | 0 0 0 1 1.41 0 0 0.859 0 0 0 0.718 -1.41 0 0 0.859 0 2 0 1 1.41 2 0 0.859 0 2 0 0.718 -1.41 2 0 0.859 | = | 0 0 0 1 1.64 0 0 1 0 0 0 1 -1.64 0 0 1 0 2 0 1 1.64 2.33 0 1 0 2.79 0 1 -1.64 2.33 0 1 |
Изобразите в осях XOY полученную фигуру, согласно вычисленным координатам (третий и четвертый столбцы отбросьте). Поставьте точки, следы вершин куба на плоскости XOY, и соедините их отрезками, проекциями ребер (1 и 2, 2 и 3, 3 и 4, 4 и 1, 5 и 6, 6 и 7, 7 и 8, 8 и 5, 1 и 5, 2 и 6, 3 и 7, 4 и 8). Объясните, почему в проекции невидима нижняя грань куба и видима верхняя грань куба снизу.
Задача 3.
Начертите фрактальным методом лист дерева. Постройте компьютерным способом или вручную 3-4 итерации. Перечислите параметры изображения. Примените подмешивание к одному из параметров случайных чисел для увеличения реалистичности изображения.
Пример программы и изображения разобран в книге Л.Аммерала «Программирование графики на турбо СИ» на стр. 128..
Задача 4.
Преобразуйте полилинию А(200,-100), В(100,200), С(-50,300), Д(20,-50), Е(-100,100) так, чтобы она, не потеряв пропорциональности, вместилась в экран компьютера размером (1024,768). Найдите координаты точек АВСДЕ на экране.
Для того чтобы выполнить масштабирование, необходимо:
- задать или определить координаты размера изображения: xmin, ymin, xmax, ymax и координаты области вывода: Xmin, Ymin, Xmax, Ymax;
xmin= -50, ymin=-100, xmax=200, ymax=300
Xmin=1, Ymin=1, Xmax=1024, Ymax=768
- вычислить коэффициенты масштабирования:
fx = (Xmax - Xmin) / (xmax - xmin)=(1024-1)/(200+50)=4.092,
fy = (Ymax - Ymin) / (ymax - ymin)=(768-1)/(300+100)= 1.9175,
fx = fy = min(fx, fy) = min(4.092, 1.9175)= 1.9175 - произвести вычисление координат точек на экране: точка А (480,1), то есть
xэ = Xmin + fx * (xр - xmin)=1+1.9175*(200+50)=480,
yэ = Ymin + fy * (yр - ymin)=1+1.9175*(-100+100)=1,
где xэ, yэ - экранные координаты, xр, yр - реальные координаты.
Задача 5.
Сколько цветов можно одновременно наблюдать на экране монитора, если под один пиксель в памяти будет отведено 3 байта, 2 байта, 1 байт? Сколько места в памяти занимает изображение, если разрешение монитора 1024*768? Ответ дать в виде таблицы.
Количество пиксел экрана = 1024*768=786432
Байт на пиксель | Количество цветов | Объем памяти в байтах | Объем памяти в Кбайтах |
1байт= 8 бит | 28=256 | 786432*1=786432 | 786432/1024=768Кб |
2байт= 16 бит | 216=65536 | 786432*2=1572864 | 1572864/1024= 1536Кб/1024=1,5Мб |
3байта= 24 бит | 224 = | 786432*3=2359296 | 2359296/1024= 2304Кб/1024=2,25Мб |
Задача 6.
Два треугольника с координатами вершин К(0,0,-10), Л(100,0,-100), М(50,50,-100) и П(0,40,-80),Р(40,40,-80),С(20,20,-120) наблюдаются с точки А(0,10,100) в трехмерном пространстве. Нарисуйте, как выглядит буфер кадра и z-буфер в памяти компьютера. Цвет КЛМ закодирован 1, цвет ПРС закодирован 2, цвет фона закодирован 0.
Спроецируйте треугольники на плоскость изображения (z=0) центральным проецированием (см. задачу 2). Переведите изображение в экранные координаты (см. задачу 4). Заполните буфер кадра цветами, учитывая границы фигур.
Для заполнения Z-буфера определите параметры плоскости (a,c) каждого треугольника ax + by + cz + d = 0 методом Ньюэла:
a = S(yi - yi+1) * (zi + zi+1)
b = S(zi - zi+1) * (xi + xi+1)
c = S(xi - xi+1) * (yi + yi+1).
При заполнении буфера по строке используйте формулу z := z - (a/c). Учитывайте границы треугольников.
Рекомендация – загрузите проект «Z-буфер» из лекции 21.
Задача 7.
Рассчитайте освещенность точки (10,10,10) на отшлифованной серебряной пластинке, параллельной плоскости XOZ координат, которую освещает источник синего цвета силой 100, находящийся в точке (30,30,10). Атмосферу не учитывать. На сколько отличается освещенность этой точки от освещенности точки на краю пластины (-10,10,10)?
Поскольку пластина металлическая и отшлифована, то отражение зеркальное. Длина волны синего света l = 2нм. Угол падения луча находится в плоскости XOY и составляет (30-10)/(30-10)=tg(a), a=45град..
Формула Б.-Т. Фонга для расчета освещенности Is = Il * w(i, l) * cosna,
где Is - интенсивность света, попавшего в глаз наблюдателя, Il - интенсивность падающего света, равна 100, w(i,l) - кривая отражения, представляющая отношение зеркально отраженного света к падающему как функцию угла падения i и длины волны l, коэффициенты 0,2 и 0,9 (см.рис.24.3 электронных лекций), a - угол между направлением света и нормалью к поверхности, равен 45 град., n - степень, аппроксимирующая пространственное распределение зеркально отраженного света, 5.
Так как для угла падения (30-10)/(30-10))=20/20=1,
Поскольку a=45 град, то и угол падения равен 45 град.. Тогда освещенность точки
Is = 100 * 0,2*0,9 * cos5(45)=3.24, так как cos(45)=0,71 и cos5(45) = 0.18 .
Во втором случае (30-10)/(30-(-10))=20/40=0,5,
угол падения = pi/2 – arctg(0.5) = 1.107 рад.
cos(1.107)=0.45
cos5 (1.107)=0.018
Is = 100 * 0,2*0,9 * cos5(1,107)=0,324.
Очевидно, что освещенность уменьшилась в 10 раз. Данный результат характерен для отражения света на металле, так как пятно освещенности сфокусировано в небольшой области пространства в виде блика.