Скачиваний:
15
Добавлен:
05.04.2013
Размер:
14.81 Кб
Скачать

Отсечение - 3.1. Двумерное отсечение A.l:link { text-decoration: none; font-size: 8pt; color: 666666; } A.l:hover { text-decoration: none; font-size: 8pt; color: 666666; } A.l:active { text-decoration: none; font-size: 8pt; color: 666666; } A.l:visited { text-decoration: none; font-size: 8pt; color: 666666; } A.std:link { text-decoration: none; font-size: 11pt; font-weight: bold; color: 8E5717; } A.std:hover { text-decoration: none; font-size: 11pt; font-weight: bold; color: 7F0000; } A.std:active { text-decoration: none; font-size: 11pt; font-weight: bold; color: 8E5717; } A.std:visited { text-decoration: none; font-size: 11pt; font-weight: bold; color: 8E5717; } A.li:link { text-decoration: none; font-size: 10pt; font-weight: bold; color: 666666; } A.li:hover { text-decoration: none; font-size: 10pt; font-weight: bold; color: 666666; } A.li:active { text-decoration: none; font-size: 10pt; font-weight: bold; color: 666666; } A.li:visited { text-decoration: none; font-size: 10pt; font-weight: bold; color: 666666; } A.lil:link { text-decoration: none; font-size: 11pt; color: 666666; } A.lil:hover { text-decoration: none; font-size: 11pt; color: 7F0000; } A.lil:active { text-decoration: none; font-size: 11pt; color: 666666; } A.lil:visited { text-decoration: none; font-size: 11pt; color: 666666; } Алгоритмические

основы Математические

основы Flash 5 CorelDraw 10 3D Studio Max3 [программа] [тесты] [лабораторные] [вопросы] [литература]

3. Отсечение

3.1. Двумерное отсечение Отсечение, т. е. процесс выделения некоторой части базы данных, играет важную роль в задачах машинной графики. Отсечение применяется в алгоритмах удаления невидимых линий и поверхностей, при построении теней, а также при формировании фактуры. Алгоритмы отсечения бывают дву- или трехмерными и применяются как к регулярным (прямоугольники и параллелепипеды со сторонами, параллельными осям координат), так и к нерегулярным областям и объемам. На рис. 3.1 показана плоская сцена и отсекающее окно регулярной формы. Окно задается левым (Л), правым (П), верхним (В) и нижним (Н) двумерными ребрами. Регулярным отсекающим окном является прямоугольник, стороны которого параллельны осям координат объектного пространства или осям координат экрана. Целью алгоритма отсечения является определение тех точек, отрезков или их частей, которые лежат внутри отсекающего окна. Эти точки, отрезки или их части остаются для визуализации. А все остальное отбрасывается. Поскольку в обычных сценах или картинках необходимо отсекать большое число отрезков или точек, то эффективность алгоритмов отсечения представляет особый интерес. Во многих случаях подавляющее большинство точек или отрезков лежит целиком внутри или вне отсекающего окна. Поэтому важно уметь быстро отбирать отрезки, подобные ab, или точки, подобные р, и отбрасывать отрезки, подобные ij, или точки, подобные q на рис. 3.1. Точки, лежащие внутри отсекающего окна, удовлетворяют условию: xл yв then 1

отрезок полностью видимый

визуализировать отрезок

go to 3

проверить полную невидимость отрезка

если оба конца отрезка лежат слева, справа, сверху или снизу от окна, то факт невидимости отрезка тривиален 1if хa < хл and хb < хл then 2

if хa > хп and хb > хп then 2

if ya > yв and yb > yв then 2

if ya < yн and yb < yн then 2

отрезок частично видим или пересекает продолжение диагонали, оставаясь невидимым

определить пересечения отрезка с окном 2отрезок невидим 3переход к следующему отрезку Пересечение двух отрезков можно искать как параметрическим, так и непараметрическим способами. Очевидно, что уравнение бесконечной прямой, проходящей через точки Р1(х1, y1) и Р2(х2,y2), имеет вид y = m(х - х2) + y2 или у = m(х - х2) + у2, где m = (y2 - y1)/ (х2 - х1) - это наклон данной прямой. Точки пересечения этой прямой со сторонами окна имеют следующие координаты: с левой: хл, y = m(хл - х1) + y1

с правой: хп, y = m(хп - х1) + y1

с верхней: yв, х = х1 + (1/m)(yв - y1)     

с нижней: yн, х = х1 + (1/m)(yн - у1)

m бесконечность

m бесконечность

m 0

m 0 Чтобы разработать схему эффективного алгоритма отсечения, необходимо сначала рассмотреть несколько частных случаев. Если наклон отрезка бесконечен, то отрезок параллелен левой и правой сторонам окна и надо искать его пересечения только с верхней и нижней сторонами. Аналогично, если наклон равен нулю, то отрезок параллелен верхней и нижней сторонам окна, а искать его пересечения надо только с левой и правой сторонами. назад | содержание | вперед © ОСУ АВТФ

Соседние файлы в папке exilim