Автор работы: Пользователь скрыл имя, 12 Января 2014 в 23:29, контрольная работа
Задание №1 Напишите продолжение фразы.
Задание №2 Выберите все правильные ответы на предложенные тестовые задания.
а) Сколько контактов в D-sub видеокарты VGA использовалось для передачи цвета пикселя. б) К какому цвету наиболее чувствительно человеческое зрение. в) Какой из способов формирования изображения используется в дисплее произвольного сканирования с регенерацией изображения. г) Если в пространстве Luv u=v=0 , то получается.
Студент ____________
Руководитель ____________
Санкт-Петербург 2014
Задание №1 Напишите продолжение фразы.
Гномоническая проекция - один из видов картографических проекций. Получается проектированием точек сферы из центра сферы на плоскость. Название этой проекции связано с гномоном — вертикальным столбиком простейших солнечных часов.
Важное отличительное свойство гномонической проекции состоит в том, что в ней все большие круги сферы изображаются прямыми линиями плоскости. Поэтому гномоническая проекция применяется там, где приходится работать с изображениями больших кругов, а заметные искажения формы и размеров областей не столь существенны. В астрономии она используется при наблюдении за метеорами, в навигации — для построения пеленгов радиоисточников, в сейсмологии — для изображения направления распространения сейсмических волн.
В зависимости от положения центральной
точки карты гномоническая
1)нормальной (полярной) — если центральная точка совмещена с географическим полюсом,
2)экваториальной (поперечной) — если центральная точка расположена на экваторе,
3)косой — если центральная точка расположена в некоторой промежуточной широте.
Задание №2 Выберите все правильные ответы на предложенные тестовые задания
А) С помощью какой матрицы можно перевести отрезок , лежащий в 4 октанте к каноническому виду?
Ответ:
1 0
0 -1
Б) Суть модели Фонга заключается в том, что:
Зеркальный свет при попадании
на поверхность подчиняется
Ответ : интенсивность
зеркального отражения для
В) Поворот относительно произвольной оси раскладывается на три последовательных действия ,выполняемых в следующем порядке:
Ответ: Совместим прямую с осью OZ посредством поворота системы координат относительно оси OX на угол β, а затем поврота относительно оси OY на угол γ
Выполним поврот относительно оси OZ на угол α
Выполним повроты системы
Г) Основная идея алгоритма Сазерленда-Ходжмена клиппирования многоугольника заключается :
Простой метод решения проблемы охвата отсекаемым многоугольником вершины окна предлагается в алгоритме Сазерленда-Хогдмана когда весь многоугольник последовательно отсекается каждой границей окна
Ответ: В последовательном отсечении частей многоугольника прямими линиями, приходящими через стороны окна
Д) В алгоритме Варнока
Алгоритм работает в пространстве изображения и анализирует область на экране дисплея (окно) на наличие в них видимых элементов. Если в окне нет изображения, то оно просто закрашивается фоном. Если же в окне имеется элемент, то проверяется достаточно ли он прост для визуализации. Если объект сложный, то окно разбивается на более мелкие, для каждого из которых выполняется тест на отсутствие и/или простоту изображения. Рекурсивный процесс разбиения может продолжаться до тех пор пока не будет достигнут предел разрешения экрана.
Можно выделить 4 случая взаимного расположения окна и многоугольника
· многоугольник целиком вне окна,
· многоугольник целиком внутри окна,
· многоугольник пересекает окно,
· многоугольник охватывает окно.
Соотношения между окном экрана (сплошная рамка) и многоугольником (штриховая рамка)
Ответ: Он целиком расположен внутри окна
Е) К центральным проекциям относятся:
Центральные проекции
Когда пучок проекторов исходит из заданного центра проекции, то параллельные отрезки на плоскости проекции уже не будут параллельными, за исключением случая, когда они лежат в плоскости, параллельной проекционной. При проецировании нескольких параллельных прямых их проекции пересекаются в так называемой точке схода. Если совокупность прямых параллельна одной из координатных осей, то их точка схода называется главной. Таких точек может быть не больше трех. Например, если проекционная плоскость перпендикулярна оси , то лишь на этой оси будет лежать главная точка схода, поскольку прямые, параллельные как оси , так и , параллельны также и проекционной плоскости и поэтому не имеют точки схода.
Центральные проекции классифицируются в зависимости от числа главных точек схода, которыми они обладают, а следовательно, и от числа координатных осей, которые пересекает проекционная плоскость.
Двухточечная центральная
Ответ : перспективная с двумя точками схода
Задание №3 Составьте блок-схему алгоритма решения предложенной задачи и его программную реализацию в алгоритмическом языке
Цифровой дифференциальный анализатор
Один из методов разложения отрезка в растр состоит в решении дифференциального уравнения, описывающего этот процесс. Для прямой линии имеем
dy / dx = const или Dy / Dx = (y2 - y1) / (x2 - x1)
Решение предсталяется в виде
yi+1 = yi + Dy
yi+1 = yi + Dx (y2 - y1) / (x2 - x1) [1]
где x1, y1 и x2, y2 - концы разлагаемого отрезка и yi - начальное значение для очередного шага вдоль отрезка. Фактически уравнение [1] представляет собой рекурентное соотношение для последовательных значений y вдоль нужного отрезка. Этот метод, используемый для разложения в растр отрезков, называется цифровым дифференциальным анализатором (ЦДА). Впростом ЦДА либо Dx, либо Dy (большее из приращений) выбирается в качестве единицы растра. Ниже приводится простой алгоритм, работающий во всех квадрантах:
Процедура разложения в растр отрезка по методу цифрового дифференциального анализатора (ЦДА)
предполагается, что концы отрезка (x1, y1) и (x2, y2) не совпадают
Integer - функция преобразования вещественного числа в целое.
Sign - функция, возвращающая -1, 0, 1 для отрицательного, нулевого и положительного аргумента соответственно
аппроксимируем длину отрезка
if abs(x2 - x1) >= abs(y2 - y1) then
Длина = abs(x2 - x1)
else
Длина = abs(y2 - y1)
end if
полагаем большее из приращений Dx или Dy равными единице растра
Dx = (x2 - x1) / Длина
Dy = (y2 - y1) / Длина
округляем величины, а не отбрасываем дробную часть
использование знаковой функции делает алгоритм пригодным для всех квадрантов
x = x1 + 0.5 * Sign(Dx)
y = y1 + 0.5 * Sign(Dy)
начало основного цикла
i =1
while (i <= Длина)
Plot (Integer(x), Integer(y))
x = x + Dx
y = y + Dy
i = i + 1
end while
finish
Приведем пример иллюстрирующий работу алгоритма :
Пример 2.1. Простой ЦДА в первом квадранте
Рассмотрим отрезок из точки (0,0) в точку (5,5). Используем ЦДА для разложения этого отрезка в растр. Результаты работы алгоритма таковы:
начальные установки
x1 = 0
y1 = 0
x2 = 5
y2 = 5
Длина = 5
Dx = 1
Dy = 1
x = 0,5
y = 0,5
результаты работы пошагового цикла
i |
Plot |
x |
y |
|
0,5 |
0,5 | |
1 |
(0,0) |
||
1,5 |
1,5 | ||
2 |
(1,1) |
||
2,5 |
2,5 | ||
3 |
(2,2) |
|
|
|
|
3,5 |
3,5 |
4
|
(3,3)
|
|
|
|
4,5 |
4,5 | |
5 |
(4,4) |
||
|
|
5,5 |
5,5 |
Полученное растровое
Рис.2.1. Результаты работы простого ЦДА в первом квадранте.
Пример 2.2. Простой ЦДА в третьем квадранте
Рассмотрим отрезок из точки (0,0) в точку (-8,-4) в третьем квадранте. Используем ЦДА для разложения этого отрезка в растр. Результаты работы алгоритма таковы:
начальные установки
x1 = 0
y1 = 0
x2 = -8
y2 = -4
Длина = 8
Dx = -1
Dy = -0,5
x = -0,5
y = -0,5
результаты работы пошагового цикла
i |
Plot |
x |
y |
1 |
(-1,-1) |
|
|
|
-1,5 |
-1,0 | |
2 |
(-2,-1) |
|
|
-2,5 |
-1,5 | ||
3 |
(-3,-2) |
||
-3,5 |
-2,0 | ||
4 |
(-4,-2) |
||
|
-4,5 |
-2,5 | |
5 |
(-5,-3) |
||
-5,5 |
-3,0 | ||
6 |
(-6,-3) |
||
-6,5 |
-3,5 | ||
7 |
(-7,-4) |
||
-7,5 |
-4,0 | ||
8 |
(-8,-4) |
||
-8,5 |
-4,5 |
Несмотря на то что результаты, представленные на рис. 2.2, выглядят вполне приемлемыми, анализ отрезков, проведенных из точки (0,0) в точку (-8,4) и (8,-4), показывает, что разложенный в растр отрезок лежит по одну сторону от реального и что на одном из концов отрезка появляется лишняя точка, т.е. результат работы алгоритма зависит от ориентации. Следовательно точность в концевых точках уменьшается.
Рис.2.2. Результаты работы простого ЦДА в третьем квадранте.
Несмотря на то, что сейчас этот алгоритм практически не применяется, он позволяет понять сложности, которые встречаются при растеризации отрезка и способы их решения.
На вход алгоритму подаются координаты точек p1(x1, y1) и p2(x2, y2). Причем координаты точек заданы в вещественном формате.
#define roundf(x) floor(x + 0.5f)
void line_DDA(HDC hdc, float x1, float y1, float x2, float y2)