
ALL
.pdf
ОТОБРАЖЕНИЕ ОКНА ОТСЕЧЕНИЯ В НОРМИРОВАННОЕ ПОЛЕ ПРОСМОТРА
•
•
•Рис.Точка (xw, yw) в отсекающем окне переходит в точку с нормированными координатами (xnorm; ynorm), затем в точку с экранными координатами (xv, yv) в поле просмотра. Перед преобразованием в координаты поля просмотра объекты отсекаются единичным квадратом
•Преобразование окна в поле просмотра сохраняет относительное расположение описаний
объектов. Но только в том случае, если масштабные коэффициенты sx и sy одинаковы. иначе внешние объекты искажаются.
–Объект внутри отсекающего окна переводится в соответствующую точку внутри поля просмотра.
–Объект, внешний для отсекающему окну - внешний для поля просмотра.
•Процедуры отсечения можно применить, используя либо границы отсекающего окна, либо границы поля просмотра.
•После отсечения нормированные координаты переводятся в координаты устройства. Единичный квадрат может отображаться на устройство вывода с использованием таких же процедур, что и при преобразовании окна в поле просмотра – область внутри единичного квадрата переводится в полную область экрана устройства вывода.

ОТОБРАЖЕНИЕ ОТСЕКАЮЩЕГО ОКНА В НОРМИРОВАННЫЙ КВАДРАТ
•Другой подход к двухмерному наблюдению:
•отсекающее окно преобразуется в нормированный квадрат, проводится отсечение в нормированных координатах, а затем описание сцены переводится в поле просмотра, заданное в экранных координатах.
•Нормированные координаты меняются в диапазоне от -1 до 1. Объекты вне границ x = 1 и y =1 обнаруживаются и удаляются из описания сцены. На конечном этапе объекты в поле просмотра размещаются в окне на экране дисплея.
•Содержимое отсекающего окна переносится в единичный квадрат с использованием таких же процедур, что и при преобразовании окна в поле просмотра. Чтобы получить матрицу
нормировки, нужно в уравнение подставить -1 вместо xvmin и yvmin и +1 вместо xvmax и yvmax. Затем вычисляются значения tx, ty, sx и sy, получаем
•После применения алгоритмов отсечения нормированный квадрат со стороной 2 переходит в заданное поле просмотра. Матрица преобразования получается подстановкой -1 вместо xwmin и
ywmin и +1 вместо xwmax и yw :

ОТОБРАЖЕНИЕ ОТСЕКАЮЩЕГО ОКНА В НОРМИРОВАННЫЙ КВАДРАТ
•Последний этап процесса наблюдения разместить область поля просмотра в окне на экране дисплея. Левый нижний угол поля просмотра располагается в точке, заданной относительно левого нижнего угла окна на экране (рис.).
•Для сохранения исходных пропорций объектов характеристические отношения поля просмотра и отсекающего окна выбираются равными, иначе объекты будут растягиваться или сжиматься в направлении x или y.
•Характеристическое отношение окна на экране дисплея влияет на пропорции объектов.
•Если поле просмотра отображается на все окно на экране дисплея, и размер окна на экране дисплея меняется, объекты могут искажаться, если не менять характеристическое отношение поля просмотра.
•Рис. Поле просмотра начинается в точке с координатами (xs,
• ИЗОБРАЖЕНИЕ СТРОК СИМВОЛОВ |
ys) окна на экране дисплея |
•Существует два способа обработки строк символов, когда они проходят по конвейеру наблюдения к полю просмотра.
•Простейший метод сохраняет постоянный размер символов. Этот метод можно реализовать с растровыми символами.
•В то же время, наравне с другими примитивами можно преобразовывать и эскизные шрифты; достаточно преобразовать определенные положения отрезков в формах эскизных символов.
•Затем при обработке других примитивов сцены применяются алгоритмы определения точечных изображений преобразованных символов.

АЛГОРИТМЫ ОТСЕЧЕНИЯ
•В общем случае любая процедура, которая удаляет те участки изображения, которые находятся внутри или снаружи заданной области пространства, называется алгоритмом отсечения или просто отсечением.
•Чаще всего отсечение применяется в конвейере наблюдения для извлечения обозначенного участка сцены (2D или 3D) для отображения на устройстве вывода. Методы отсечения также используются для защиты от наложения границ объектов, построения объектов с использованием методов объемного моделирования, управления средой с несколькими окнами
иперемещения, копирования или стирания участков изображения в различных программах.
•Для эффективной реализации отсечения в конвейере наблюдения алгоритмы применяются к нормированным границам отсекающего окна.
•Все матрицы геометрических преобразований и преобразований наблюдения объединяют и применяют к описанию сцены до отсечения.
•Обрезанную сцену надо перевести в экранные координаты для окончательной обработки.
•Двухмерные алгоритмы.
–Отсечение точки.
–Отсечение линии (прямых отрезков).
–Отсечение закрашенной области (многоугольники).
–Отсечение кривой.
–Отсечение текста.
•Если не оговорено иное, отсекающая область это прямоугольное окно стандартной ориентации, углы которого находятся в точках с координатами xwmin, xwmax, ywmin и ywmax.
•Данные углы соответствуют нормированному квадрату, в котором x и y принадлежат диапазону от 0 до 1 или от -1 до 1.
ДВУХМЕРНОЕ ОТСЕЧЕНИЕ ТОЧКИ
•Для двухмерного прямоугольника стандартной ориентации двухмерная точка P = (x; y) извлекается для отображения, если удовлетворяется следующее неравенство:
•xwmin x xwmax;
•ywmin y ywmax:
•Если любое из этих неравенств не удовлетворяется, точка отсекается (не сохраняется для отображения).
•Хотя отсечение точки применяется реже, чем отсечение линии или многоугольника, в различных ситуациях оно полезно, особенно когда изображения смоделированы системой многих частиц.
•Например, отсечение точки можно применить к сценам, содержащим облака, морскую пену, дым или взрывы, которые моделируются частицами(координатами центров маленьких окружностей или сфер).

ДВУХМЕРНОЕ ОТСЕЧЕНИЕ ЛИНИИ
1.Если все концы отрезка находятся внутри всех четырех сторон отсекающего прямоугольника, (P1P2 на рис.), линия полностью лежит внутри отсекающего окна, и она сохраняется.
2.Если оба конца отрезка находятся вне всех четырех сторон (линия P3P4 на рис.), отрезок находится полностью вне окна, и он удаляется из описания сцены.
3.Если ни одна проверка не дала положительного результата, отрезок пересекает по меньшей мере одну сторону отсекающего прямоугольника и может пересекать или не пересекать внутреннюю часть отсекающего окна.
•Параметрическое представление уравнения для прямого отрезка, где точки с координатами (x0, y0) и (xend, yend) - концы отрезка.
•x = x0 + u(xend - x0);
• y = y0 + u(yend - y0); 0 u 1
•Подставить вместо x или y координаты и найти параметр u, (где отрезок проходит через стороны отсекающего окна).
•Например, левая граница окна - xwmin, подставим вместо x, найдем u и вычислим координату y точки пересечения.
•Если u [0, 1], отрезок не пересекает данную границу окна, иначе часть линии находится внутри границ. Затем обработать внутреннюю часть отрезка вместе с другими границами окна, пока не будет удалена вся линия, или пока не будет найден отрезок, полностью лежащий внутри окна.
•Обработка отрезков на сцене с использованием простого подхода отсечения не очень эффективна.
•В настоящее время разработано несколько более быстрых схем отсечения линий.

ОТСЕЧЕНИЕ ЛИНИЙ КОЭНА-САЗЕРЛЕНДА
•Одним из первых алгоритмов, разработанных для быстрого отсечения линий, является схема Коэна-Сазерленда (Cohen-Sutherland), и разновидности этого метода очень широко используются. Время обработки в этом методе сокращено за счет большего числа проверок перед обработкой (нахождением точек пересечения).
1.Изначально всем конечным точкам линий на изображении присваивается четырехзначное двоичное значение – код области.
•Каждый бит указывает, находится точка внутри или вне одной границы отсекающего окна.
•Границы окна можно нумеровать в любом порядке, на рис. один из вариантов – биты нумеруются от 1 до 4.
•Крайний справа разряд (бит 1) соответствует левой границе отсекающего окна, а крайний слева разряд (бит 4) верхней границе окна.
•Значение 1 (true) в любом разряде – конечная точка вне соответствующей границы окна.
•Значение 0 (false) в любом разряде – конечная точка не находится снаружи (внутри или на границе) соответствующей стороны окна.
Рис. Возможное упорядочение границ отсекающих окон, соответствующих двоичным разрядам кода области Коэна-Сазерленда


ОТСЕЧЕНИЕ ЛИНИЙ КОЭНА-САЗЕРЛЕНДА
•После определения кодов областей для всех конечных точек, определяют линии, которые полностью лежат внутри окна и очевидно лежащие снаружи.
–Если конечные точки линий имеют код области 0000, эти отрезки целиком вмещаются в окно, они сохраняются.
–Любая линия, конечные точки которой имеют 1 в одинаковых разрядах кода области, лежит полностью за пределами окна, и этот отрезок удаляется.
•Например, Pн - имеет код области 1001, а Pк - 0101, линия целиком слева от отсекающего окна – 1 в первом разряде обоих кодов области.
•Если линии с помощью тестов кодов области нельзя отнести к полностью внешним или полностью внутренним, выполняется проверка на пересечения с границами окон.
•Отрезки могут пересекать границы, не попадая внутрь окна – P3P4. Для отсечения отрезка требуется вычислить несколько точек пересечения в зависимости от порядка обработки границ отсечения.
•При обработке каждой стороны отсекающего окна отсекается кусок
•линии, а оставшаяся часть линии проверяется на пересечение с
•другими границами окон.
•На рис. представлены два отрезка, которые невозможно
•сразу отнести к полностью внутренним или
•полностью внешним по отношению к отсекающему окну.
•Требуется проверить соответствующие разряды кодов
•областей конечных точек.
•Если одно значение равно 1, а второе 0, отрезок пересекает границу.