Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
2.5. ОТСЕЧЕНИЕ ЛИНИЙПредположим, что мировые и экранные координаты одинаковы, то есть окно и область вывода совпадают. Поэтому в этом параграфе термин “окно” везде может быть заменен на термин “область вывода”. Однако обычно считается, что отсечение выполняется по границам окна, а не области вывода, это и учитывается в данном случае. На рис. 2.7 показан прямоугольник
Рис. 2.7. Треугольник, подвергающийся операции отсечения Поскольку заданы только три точки
Совмещая это уравнение с соотношением
получим
Отсюда легко вычисляются координаты точки Р, если из вестно, что концевая точка Р находится внутри окна, а другая концевая точка
Однако необходимо рассмотреть значительно больше ситуаций. Большое разнообразие логических операций, которые нужно выполнить для решения этой задачи, делают проблему отсе чения линий очень интересной с алгоритмической точки зрения Из рис. 2.8 очевидно, что совершенно недостаточно отсечь отрезок прямой линии PQ относительно прямой линии С любой точкой
где
Рис. 2.8. Последовательные шаги отсечения
Фактически могут существовать только девять из 16 возможных битовых комбинаций, и они показаны на рис. 2.9. На языке Си значения кодов вырабатываются функцией
Для понимания этого выражения необходимо знать, что выражение
Рис. 2.9. Значения кодов позиций влево. Кроме битовой операции сдвига
Это выражение здесь приводится исключительно с цельк облегчения восприятия предыдущего выражения. Описанная здесь функция code будет использоваться в функции Если хотя бы один из кодов для точек и
Рис. 2.10. Отрезок вне окна находятся по одну сторону от окна тогда и только тогда, если их коды содержат 1 в одной и той же позиции. Для трех точек Подобно оператору побитовой операции ИЛИ, обозначаемому вертикальной чертой (I) и упомянутому ранее, в языке Си имеется оператор побитовой операции Я, обозначаемый знаком
будет выполнять действия, обозначенные многоточием бите, то есть пока в аргументах
вызывает прямой выход из функции, если битовая последова тельность, полученная в результате выполнения операции (см. скан) (см. скан) На рис. 2.11 показан результат работы этой программы.
Рис. 2.11. Результат работы программы CUPDEMO
|
1 |
Оглавление
|