- •Физические основы цвета и восприятие его человеком.
- •Удаление невидимх граней алгоритмом z-буфера.
- •Кодирование цветов в вычислительной технике.
- •Виды кг
- •Растровая графика. Базовые алгоритмы построения отрезка
- •Методы приоритетов
- •Алгоритм Брезенхейма для построения отрезка.
- •Кривая Безье
- •А лгоритмы закраски области заданным цветом. Простой алгоритм с упорядоченным списком ребер
- •Алгоритмы заполнения с затравкой
- •Методы построчного сканирования для криволинейных поверхностей
- •Алгоритмы Варнака и Робертса
- •Алгоритм Аппеля (метод трассировки лучей)
- •Однородные координаты. Геометрическая интерпретация
- •Виды проецирования.
- •Двумерное отсечение. Простой алгоритм определения видимости.
- •Двумерное параметрическое отсечение. Отсечение средней точкой
- •Двумерный алгоритм Лианга-Барски
- •Алгоритм Кируса-Бека
- •Зеркальное отражение. Закраска методом Гуро.
- •Зеркальное отражение. Закраска методом Фонга
- •Текстурирование.
- •Свето-теневой анализ. Метод излучательности
- •Отображения в окне. Виды координат
- •Растровая развертка. Алгоритмы отрезков и сплошных областей
- •Трехмерное отсечение. Обобщение
- •Алгоритм Плавающего горизонта
- •Алгоритм Вейлера-Азертона
- •Прозрачность. Свето-теневой анализ
Двумерное отсечение. Простой алгоритм определения видимости.
В этом алгоритме отрезок отсекается поочередно каждой из сторон окна, а для полученных точек пересечения проверяется их принадлежность внутренней области окна, т. е. корректность пересечения. Эта процедура применяется сначала к исходному отрезку Р1Р2 и получается отрезок Р1'Р2, а затем к отрезку Р1'Р2 и получается результирующий отрезок Р1'Р2'. 1. Вычисление кодов концевых точек отрезка. 2. Занесение этих кодов в 2 массива, размерностью 1х4 каждый. 3. Проверка полной видимости отрезка. Если отрезок полностью видим goto 13. 4. Проверка тривиальной невидимости отрезка. Если отрезок полностью невидим goto 13. 5. Отрезок может быть частично видим. Проверяется попадание концевых точек отрезка внутрь окна. Если концевые точки внутри окна есть, goto 8. 6. Внутри окна нет концов отрезка. 7. Инициализация номера конца отрезка. Если обработано оба конца отрезка, goto 13. 8. Проверяется вертикальность отрезка. Если отрезкок вертикален, goto 11. 9. Ищутся точки пересечения отрезка с левым и правым краями окна. Если пересечение обнаружено, goto 7. 10. Проверяется горизонтальность отрезка. Если отрезок горизонтален, goto 7. 11. Проверяется пересечение отрезка с верхним и нижним краями окна. Если пересечение обнаружено, goto 7. 12. Если пересечений не обнаружено, то отрезок невидим. 13. Завершение работы и вызов процедуры черчения. 14. Перейти к обработке следующего отрезка.
В алгоритме Сазерленда-Коэна отрезок тоже разбивается сторонами окна. Отличие состоит в том, что здесь не производится проверки попадания точки пересечения внутрь окна, вместо этого каждая из пары получающихся частей отрезка сохраняется или отбрасывается в результате анализа кодов ее концевых точек. Для определения той из девяти областей, которой принадлежит конец ребра, вводится четырехразрядный (битовый) код. Крайний правый бит кода считается первым. В соответствующий бит заносится 1 при выполнении следующих условий: для первого бита - если точка левее окна для второго бита - если точка правее окна для третьего бита - если точка ниже окна для четвертого бита - если точка выше окна В противном случае в бит заносится нуль. Ключом к алгоритму Сазерленда-Коэна является информация о том, что одна из концевых точек отрезка лежит вне окна. Поэтому тот отрезок, который заключен между этой точкой и точкой пересечения, можно отвергнуть как невидимый. Фактически это означает замену исходной концевой точки на точку пересечения. В содержательных понятиях алгоритм Сазерленда - Коэна формулируется следующим образом: Для каждой стороны окна выполнить: 1. Для каждого отрезка Р1P2 определить, не является ли он полностью видимым или может быть тривиально отвергнут как невидимый. 2. Если Р1 вне окна, то продолжить выполнение, иначе поменять Р1 и Р2 местами. 3. Заменить Р1 на точку пересечения Р1Р2 со стороной окна.