Cтраница 3
В третьих, решение проблемы удаления невидимых линий можно упростить, если предположить, что все грани являются плоскими. Это накладывает на вершины граничного многоугольника дополнительное условие: они должны лежать в одной плоскости. Мы наложим, однако, еще более сильное ограничение: будем считать, что тела не только ограничиваются плоскими гранями, но и являются выпуклыми. Тогда для определения видимости какой-либо грани тела достаточно вычислить нормаль к ней. [32]
На изображениях пространственных фигур мелким пунктиром обозначены невидимые линии; крупным пунктиром изображены вспомогательные линии. [33]
Чтобы усилить пространственный эффект, желательно удалить невидимые линии. Проще всего с некоторого шага, скажем с тринадцатого ( имеется в виду первый цикл), начать рисовать полуэллипсы. [34]
На изображениях пространственных фигур мелким пунктиром обозначены невидимые линии; крупным пунктиром изображены вспомогательные линии. [35]
Функцией блока решения является решение проблемы удаления невидимых линий. Если блок просмотра не обнаружил ни одного многоугольника, охватывающего или пересекающего окно, то окно определенно пусто. [36]
Несмотря на кажущуюся простоту, задача удаления невидимых линий и поверхностей является достаточно сложной и зачастую требует очень больших объемов вычислений. Поэтому существует целый ряд различных методов решения этой задачи, включая и методы, опирающиеся на аппаратные решения. [37]
![]() |
Пересечение двух звездных многоугольников. [38] |
Это означает, что задача об удалении невидимых линий для произвольных многоугольников также должна потребовать в худшем случае квадратичного времени просто потому, что для того, чтобы нарисовать их пересечения, необходимо Q ( N2) векторов. В следующем разделе будет показан удивительный результат, состоящий в том, что если нужно установить только факт пересечения Р и Q, то нет необходимости тратить так много времени. [39]
Для удобочитаемости чертежей применяется условность в изображении видимых и невидимых линий. Видимый контур предмета изображается сплошной основной линией, а невидимая часть его в случае необходимости изображается штриховой линией в два-три раза тоньше первой. [40]
Начальное значение 0.5. Определяет гладкость объектов с удаленными невидимыми линиями и тонированных объектов. [41]
Одна из причин появления широкого класса алгоритмов удаления невидимых линий заключается в том, что не существует алгоритма, одинаково пригодного для различных типов аппаратуры отображения. [42]
На рис. 14.8 а показана сцена, удаление невидимых линий в которой выполнено в соответствии с алгоритмом Варнока. Каждый маленький значок х представляет светящуюся точку на экране. На рис. 14.8 6 показана та же сцена без удаления невидимых линий. [43]
Приведенных выше подробностей достаточно для построения программы удаления невидимых линий. Скорость работы программы можно значительно повысить за счет использования связности сканирующих строк. Составим список значений величин SPANrlgbi пробных точек, которые делят сканирующую строку на интервалы, каждый из которых уже не подвергается дальнейшему делению. [44]
Методы первого класса дают точное решение задачи удаления невидимых линий и поверхностей, никак не привязанное к растровым свойствам картинной плоскости. [45]