Трёхмерная компьютерная графика
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: доклад, контрольная работа 10
| Добавил(а) на сайт: Nadezhda.
Предыдущая страница реферата | 8 9 10 11 12 13 14 15 16 17 18 | Следующая страница реферата
Верх (X2) = Max (Верх (X2), Y2)
Низ (X2) = Min (Низ (X2), Y2)
else
Наклон = (Y2 - Y1)/(X2 - X1)
for x = X1 to X2 step 1
y = Наклон * (x - X1) + Y1
Верх (x) = Max (Верх (x), y)
Низ (x) = Min (Низ (x), y)
next x
end if
return
подпрограмма вычисления пересечения текущей кривой с горизонтом
Subroutine Пересечение (X1, Y1, X2, Y2, Массив; Xi, Yi)
Эта процедура вычисляет пересечение двух отрезков прямых
Массив содержит информацию о соответствующем горизонте
Sign – функция принимающая значения - 1, 0, 1, если знак её аргумента 0 соответственно
проверка бесконечности наклона
if (X2 – X1) = 0 then
Xi = X2
Yi = Массив (X2)
else
вычисление пересечения
обход начинается с самой левой используемой точки
пересечение считается обнаруженным, когда изменяется знак разности значений y
Наклон = (Y2 – Y1)/(X2 – X1)
Ysign = Sign (Y1 + Наклон - Массив (X1 + 1))
Csign = Ysign
Yi = Y1 + Наклон
Xi = X1 + 1
while Csign = Ysign
Yi = Y1 + Наклон
Xi = X1 + 1
Csign = Sign (Yi - Массив (Xi))
end while
выбирается ближайшее целое число
if |Yi - Наклон - Массив (X1 – 1)| £ |Yi - Наклон - Массив (X1)| then
Yi = Y1 – Наклон
Xi = X1 – 1
end if
end if
return
В приведенных выше алгоритме и примере функция у = f (x, z) рассматривалась только при z = const. Часто бывает удобно вычерчивать кривые, полагая постоянными как z, так и x. При этом возникает эффект перекрестной штриховки. На первый взгляд может показаться, что перекрестную штриховку можно получить путем наложения двух результатов, образованных плоскостями z = const и x = const. Однако это не так. Верный результат получается при обработке тех кривых из числа лежащих в плоскостях z = const и x = const, которые ближе всего к горизонтальным при обычном порядке их следования. Однако после обработки каждой кривой, самой близкой к горизонтальной, необходимо обрабатывать участки кривых, лежащих в ортогональных ей плоскостях, которые находятся между указанной кривой и кривой, следующей за ней. Разумеется, при обработке обеих последовательностей кривых нужно использовать одни и те же массивы верхнего и нижнего плавающих горизонтов. Если используется перекрестная штриховка, то не надо формировать левое и правое боковые ребра.
Алгоритм Робертса
Алгоритм Робертса представляет собой первое известное решение задачи об удалении невидимых линий . Это математически элегантный метод, работающий в объектном пространстве. Алгоритм, прежде всего, удаляет из каждого тела те ребра или грани, которые экранируются самим телом. Затем каждое из видимых ребер каждого тела сравнивается с каждым из оставшихся тел для определения того, какая его часть или части, если таковые есть, экранируются этими телами. Поэтому вычислительная трудоемкость алгоритма Робертса растет теоретически как квадрат числа объектов. Именно этот факт привёл к снижению интереса к алгоритму Робертса. Однако математические методы, используемые в этом алгоритме, просты, мощны и точны. Кроме того, этот алгоритм можно использовать для иллюстрации некоторых важных концепций. Наконец, более поздние реализации алгоритма, использующие предварительную приоритетную сортировку вдоль оси z и простые габаритные или минимаксные тесты, демонстрируют почти линейную зависимость от числа объектов.
В алгоритме Робертса требуется, чтобы все изображаемые тела или объекты были выпуклыми. Невыпуклые тела должны быть разбиты на выпуклые части. В этом алгоритме выпуклое многогранное тело с плоскими гранями должно представляться набором пересекающихся плоскостей. Уравнение произвольной плоскости в трехмерном пространстве имеет вид
ах + by + cz + d = 0 (3.1)
Рекомендуем скачать другие рефераты по теме: шпоры бесплатно, налоги и налогообложение.
Категории:
Предыдущая страница реферата | 8 9 10 11 12 13 14 15 16 17 18 | Следующая страница реферата