Иванов В.П., Батраков A.C. - Трехмерная компьютерная графика / Под ред. Г.М. Полищука. стр.59

Нормальный вектор в точке (Х,У,г) квадратичной поверхности, построенной по принципу положительности внутренней области, должен определяться по правилу

И=-Пу,/, (3.4.14^

где П=[1 } к].

Функция у представляет собой вектор-столбец

\|/ = ВУ+БХ+Ег+Н CZ+FX+EY+J

Вектор N направлен по градиенту скалярного поля Г(Х,У,7), т.е. в сторону возрастания значений Г(Х,У,2). В выражение (3.4.14)

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

В приложении приведены программы ALLOID, ALLIPS, CILIND, KONYS, PICA, используемые для изображения наиболее часто используемых примитивов второго порядка: ALLOID — эллипсоида, усеченного двумя плоскостями; ALLIPS — эллипсоида; CILIND — кругового цилиндра со свободно-ориентированной осью и закрытыми торцами; KONYS — конуса, ограниченного двумя плоскостями, перпендикулярными оси; PICA

— неограниченного конуса. Все эти подпрограммы используют в свою очередь алгоритм решения квадратного уравнения KVADR и служебную подпрограмму NA8FIR, которая из нескольких точек пересечения прямой с примитивом сначала выбирает действительно лежащие на поверхности, а из последних

— ближайшую к центру проекции. Процедура обработки эллипсоида и конуса ориентирована на расположение осей этих фигур параллельно координатным осям. Так как все решения пересечения прямой с примитивами ориентированы только на поиск одной ближайшей точки, то подпрограммы можно применять в сценах только с пространственно складывающимися фигурами.

На рис. 3.2.2 показаны несколько шаров и усеченный эллипсоид (бочка), иллюстрирующие изобразительные свойства примитива типа эллипсоида. Изображение построено с использованием подпрограмм ALLIPS и ALLOID. Заметим, что шарообразные поверхности всегда проявляют блик, конечно, при их достаточной гладкости. Плоские же поверхности (торец бочки на рис. 3.2.2) проявляют блик только в очень узком диапазоне условий наблюдения и освещения. Изображение цилиндра, для которого использовано математическое описание в виде (3.2.1) показано на рис. 3.2.3. Рисунки 3.2.5,а,б демонстрируют возможности изменения облика конического примитива при перемещении отсекающих плоскостей вдоль оси конуса. Фигуру на рис. 3.2.5 называют бантик, фигуру на рис. 3.2.6 — усеченный конус.

I .......................... .,.„.„. ,.,„„..-.,..„..„.„, , .......,. , ,,,,,,,,, ,,, , ,,, .. , .... ...... ... . , ...,,, ... ,.?тгг-гг

3.4.4. БИКУБИЧЕСКИЕ ПОВЕРХНОСТИ

С помощью бикубических поверхностей можно описать гладкую поверхность произвольной формы [1, 79, 99, 104]. Обычно этими функциями описывают смежные участки криволинейной поверхности, добиваясь гладкости в местах стыка в результате координатного совпадения смежных угловых точек и совпадения первых производных. Рассматриваемые функции являются функциями наименьшей степени, с помощью которых достигается гладкость составной поверхности. Известно [41,49,60], что участок такой поверхности Х=Х(8Д), У=У(8,1), Ъ=Х(ъ,\) может быть представлен параметрически, например, уравнение для Х(8,1):


⇐ Предыдущая страница| |Следующая страница ⇒