- •1. Предмет кг. Области применения кг. Совр. Тенденции развития кг.
- •2. История развития кг. Современные тенденции развития кг.
- •3. Основные понятия кг. Аппаратное обеспечение кг. Принципы формирования изобр.
- •4. Архитектура рабочих станций. Графический ускоритель. Арi.
- •5. Архитектура графических рабочих станций. Технологии 3d графики.
- •6. Архитектура графических рабочих станций. Принципы конвейерной архитектуры.
- •7. Общие положения алгоритмов сжатия изображений.
- •8. Алгоритмы архивации без потерь: rle, lz/lzw, Хаффман.
- •9. Алгоритмы архивации с потерями, проблемы алгоритмов архивации с потерями. Основные идеи алгоритмов jpeg, фрактальный, волновой.
- •10. Геометрическое моделирование и решаемые им задачи…
- •11. Представление геометрических моделей. Полигональные сетки и способы …
- •12. Аффинные преобразования, их свойства, однородные координаты.
- •13. Аффинные преобразования на плоскости.
- •14. Аффинные преобразования в пространстве. Использование матричного представления. Составные аффинные преобразования в пространстве.
- •15. Проецирование. Общий вид преобразований в пространстве. Виды проекций.
- •Общая формула преобразования
- •16. Этапы создания графического объекта. Преобразование положения объекта. Понятие камеры. Особенности матричных преобразований.
- •17. Понятие растрового алгоритма. Понятие связности. Основные требования предъявляемые к растровым алгоритмам.
- •18. Растровое представление отрезка: постановка задачи, простейший алгоритм, алгоритм цда.
- •19. Растровое представление отрезка: постановка задачи, алгоритм Брезенхейма.
- •20. Растровое представление отрезка: построение сглаженной линии (метод Флойда-Стейнберга, модификация алгоритма Брезенхейма, сглаживание всей сцены).
- •21. Растровое представление окружности: постановка задачи, простой алгоритм, алгоритм Брезенхейма.
- •22. Алгоритм закраски области, заданной цветом границы.
- •Задача отсечения Вопрос 23
- •Двумерный алгоритм Коэна-Сазерленда (Кохена-Сазерленда)
- •Двумерный fc-алгоритм
- •Задача отсечения Вопрос 24
- •Двумерный алгоритм Лианга-Барски
- •Задача отсечения Вопрос 25
- •Двумерный алгоритм Кируса-Бека
- •Проверка выпуклости и определение нормалей Вопрос 27 Алгоритм с использованием векторных произведений
- •Разбиение невыпуклых многоугольников. Алгоритм метода при обходе вершин многоугольника против часовой стрелки состоит в следующем:
- •Отсечение многоугольника
- •Вопрос 28
- •Вопрос 29
- •Вопрос 30
- •Вопрос 31
- •Пересечение луча с плоскостью и многоугольником Вопрос 32
- •Вопрос34
- •Вопрос 35
- •Вопрос 36
- •Вопрос 37
- •Вопрос 38
- •Вопрос 39
- •Вопрос 40
- •Вопрос 41
- •Вопрос 42
- •Пирамидальное фильтрование (Mip-mapping).
- •Вопрос 43
- •Трассировка лучей
- •Излучательность
- •Вопрос 44
- •Интерактивные системы машинной графики
- •Графические языки высокого уровня
- •Синтаксические расширения алгоритмических языков
- •Процедурные графические языки
- •Вопрос 45
Проверка выпуклости и определение нормалей Вопрос 27 Алгоритм с использованием векторных произведений
Проверка на выпуклость может производиться анализом знаков векторных произведений смежных ребер |[A\vec] ×[B\vec]| = A·B · sin (AB )
в одной вершине = 0, то вершина вырождена, т.е. смежные ребра лежат на одной прямой (рис. 15б, вершина Q).
все знаки равны 0, то многоугольник отсечения вырождается в отрезок.
Если же векторные произведения имеют разные знаки, то многоугольник отсечения невыпуклый
Если все знаки неотрицательные, то многоугольник выпуклый, причем обход вершин выполняется против часовой стрелки
Если все знаки неположительные, то многоугольник выпуклый, причем обход вершин выполняется по часовой стрелке.
Разбиение невыпуклых многоугольников. Алгоритм метода при обходе вершин многоугольника против часовой стрелки состоит в следующем:
Для каждой i-й вершины многоугольник сдвигается для переноса упомянутой вершины в начало координат.
Многоугольник поворачивается против часовой стрелки для совмещения (i+1)-й вершины с положительной полуосью X. Вектор внутреннего перпендикуляра к ребру, образованному вершинами i-й и (i+1)-й, вычисляется поворотом ребра на -90°
Анализируется знак Y-координаты (i+2)-й вершины. Если Yi+2 і >=0, то в (i+1)-й вершине выпуклость, иначе невыпуклость. Если имеется невыпуклость, то многоугольник разрезается на два вдоль положительной полуоси X. Так как вновь полученные многоугольники могут в свою очередь оказаться невыпуклыми, алгоритм применяется к ним, пока все многоугольники не станут выпуклыми.
Отсечение многоугольника
Будем называть многоугольник, используемый в качестве окна отсечения отсекателем, а многоугольник, который отсекается, - отсекаемым.
Алгоритм отсечения многоугольника должен в результате отсечения давать один или несколько замкнутых многоугольников. При этом могут быть добавлены новые ребра, а имеющиеся или сохранены, или разделены, или даже отброшены. Существенно, чтобы границы окна, которые не ограничивают видимую часть отсекаемого многоугольника, не входили в состав результата отсечения, иначе возможна излишняя закраска границ окна эту задачу можно решить с использованием алгоритмов отсечения линий, если представить многоугольник просто как набор векторов, а не как сплошные закрашиваемые области. При этом векторы, составляющие многоугольник, просто последовательно отсекаются сторонами окнаЕсли же в результате отсечения должен быть получен замкнутый многоугольник, то формируется вектор, соединяющий последнюю видимую точку с точкой пересечения с окном.
Вопрос 28
Задачи вычислительной геометрии: задача рационального поиска, задача локализации. Принадлежность точки многоугольнику. Уникальный запрос. Массовый запрос.
Вычислительная геометрия - наука, занимающаяся разработкой и анализом эффективности различных геометрических задач, предназначенных для реализации на ЭВМ.
Пусть имеется набор геометрических данных и нужно узнать, обладают ли они определенным свойством (скажем, выпуклостью). В простейшем случае, когда этот вопрос возникает единожды, не нужно проводить предобработку с целью ускорить прохождение последующих запросов. Назовем разовый запрос такого типа уникальным. Однако будут и запросы, обработка которых повторяется многократно на том же самом файле. Такие запросы назовем массовыми.
Две главные модели для задач геометрического поиска:
Задачи локализации, когда файл представляет собой разбиение геометрического пространства на области, а запрос является точкой. Локализация состоит в определении области, содержащей запрошенную точку.
Задачи регионального поиска, когда файл содержит набор точек пространства, а запрос есть некая стандартная геометрическая фигура, произвольно перемещаемая в этом пространстве (типичный запрос в 3-мерном пространстве — это шар или брус). Региональный поиск состоит в извлечении (задачи отчета) или в подсчете числа (задачи подсчета) всех точек внутри запросного региона (области)
Определение принадлежности точки непересекающемуся многоугольнику
Выпустим из точки А(х, у) произвольный луч и найдем количество точек пересечения этого луча с границей многоугольника. Если отбросить случай, когда луч проходит через какую-либо вершину многоугольника, то решение задачи тривиально - точка лежит внутри, если количество точек пересечения нечетно, и снаружи, если четно.
Приходим к следующему алгоритму. Все отрезки, кроме горизонтального, проверяются на пересечение с горизонтальным лучом, выходящим из точки А. При попадании луча в вершину пересечение засчитывается только с теми отрезками, выходящими из вершины, для которых она является верхней.