Здесь мы поступим так же, за исключением того, что нормаль к поверхности будем вычислять в каждой вершине, чтобы можно было осуществить плавное закрашивание. На рис. 6.64 показана трубка, надетая на спиральную форму. Сравните эту форму с рис. 6.39.

п(и, и) = (соз2-2^») со82-^(и), соз2-2'""(у) ът2-2'\й), мп2-2'""(у)).

(6.45)

6.5.10. Трубки на базе трехмерных кривых

Френсис Хилл

Рис. 6.64. Спиральная трубка, изгибающаяся в пространстве Глава 6. Моделирование поверхностей полигональными сетками Если мы хотам нанизать окружность, заданную выражением (cos(m), sin(«), 0), на хребет C(t), то результирующая поверхность будет иметь следующее параметрическое представление: Р(и, v) = С(р) + cos(m) N(o) + sin(m) В(»), (6.46)

где нормальный вектор N(0 и бинормальный вектор В(£) задаются соответственно равенствами (6.15) и (6.14). Теперь для такой трубки можно обычным способом построить сетку: «взять замеры» Р(и, v) при различных ии», составить списки вершин, нормалей и граней и т. д. (Что бы изменилось, если бы мы вместо окружности надели на хребет циклоиду - см. рис. 3.80?)

6.5.11. Поверхности на базе явных функций двух переменных Многие формы поверхности однозначны в одном измерении, так что их положение может быть выражено явной функцией двух независимых переменных. Например, в каждой точке (х, z) может быть только одно значение «высоты» поверхности над плоскостью хг, как предлагается на рис. 6.65. Тогда можно сказать, что высота поверхности в точке (х, z) есть некоторая функция f(x, z). Такую функцию иногда называют полем высот (height field) [Bloomenthal, 33] и задают в виде формулы следующего типа:

f{x,z) = ем (6.47)

(здесь а и Ъ - заданные константы) или в виде «Бтс»-функции с круговой симметрией (см. равенство ЛЧ.Пвглаве 3V

Френсис Хилл

Рис 6.65. Однозначная область высот над плоскостью хг Сравните эту поверхность с поверхностями типа сферы, у которой с каждой точкой (х, г) связано более одного значения у. Для однозначных функций допускается следующая простая параметрическая форма:


⇐ Предыдущая| |Следующая ⇒