1 > 0С4 > се2 > се3 > а! > 0.
Отрезок сначала пересекает нижнюю и верхнюю границы, а затем - левую и правую. Поэтому параметры а2 и а3 поменялись местами по сравнению со случаем, представленным на рис. 7.8,а. Аналогично можно проанализировать и другие варианты размещения анализируемого отрезка относительно рамки видимости.
Рис 7.8. Два варианта размещения отрезка относительно рамки видимости Для эффективной реализации такой стратегии нужно разработать алгоритм, который минимизировал бы количество операций с числами в формате с плавающей точкой, необходимых для определения точек пересечения. Множество отрезков можно отсеять, не вычисляя все четыре точки пересечения. При определении точек пересечения также желательно не использовать, где это возможно, операции деления действительных чисел. Значение параметра для точки пересечения с верхней границей рамки находится из соотношения
V - V
У г ~ У\
Аналогичные соотношения имеют место и для точек пересечения с тремя остальными границами рамки. Приведенное соотношение можно представить в виде а3 Ау = Аутах, где
^У'УтУх.
Практически весь логический анализ можно выполнить в терминах Дутах и Ау и аналогичных им для других границ рамки видимости и таким образом избавиться от большинства операций деления. Они понадобятся только в тех случаях, когда окажется, что отрезок пересекает зону видимости и что нужно определить точные значения параметров в точках пересечения границ. Преимущество описанного алгоритма по сравнению с алгоритмом Коэна-Сазерленда состоит в том, что при пересечении зоны видимости можно сразу определить участок, попадающий внутрь зоны, и избежать повторного анализа.
Существует и множество других алгоритмов отсечения отрезков на картинной плоскости, но в отличие от рассмотренных их не удается распространить на трехмерный случай.
7.3. Отсечение отрезков
7.4. Отсечение многоугольников Необходимость в отсечении многоугольников возникает в разных ситуациях. Естественно, что отсечение необходимо выполнять перед или во время растрового преобразования, учитывая заданные размеры области экрана, отводимой для изображения. При этом иногда желательно, чтобы рамка отсечения принимала форму, отличную от прямоугольной. При формировании теней и удалении невидимых поверхностей возникает необходимость выполнить отсечение одного многоугольника другим многоугольником произвольной формы. Например, на рис. 7.9 показана тень, сформированная отсечением многоугольника, ближайшего к источнику света, другим, более удаленным от источника многоугольником. Методы сглаживания границ и наложения, которые будут рассмотрены в главе 9, также используют отсечение одного многоугольника другим.