logo
Ответы по компьютерной графике

25. Построение поверхностей

Параметрическое задание поверхности: P(u,w) = [x(u,w),y(u,w),z(u,w)].

P(u,w) – вектор, полученный по известным или входным данным;

Q(u,w) – вектор конструируемой поверхности.

Билинейные поверхности

Заданы P(0, 0)P(0, 1)P(1, 0)P(1, 1) – угловые точки поверхности,

Q(u, w) = P(0, 0) (1 – u)(1–w) + P(0, 1) (1 – u) w + P(1, 0) u (1–w) + P(1, 1) u w (1)

или Q(u, w) = [(1–u) u] P(0, 0) P(0, 1) 1–w

P(1, 0)P(1, 1)w,u,wЄ [0, 1]

Линейчатые поверхности

Заданы две граничные кривые: P(u, 0) иP(u, 1). Тогда линейная интерполяция между этими кривыми:

Q(u,w) =P(u, 0) (1 –w) +P(u, 1)w(2)

При этом: Q(u, 0) =P(u, 0),Q(u, 1) =P(u, 1).

Если предположить, что известны P(0,w) иP(1,w), то линейчатая поверхность будет:

Q(u,w) =P(0,w) (1 –u) +P(1,w)u(3)

При этом: Q(0,w) =P(0,w), иQ(1,w) =P(1,w).

Линейные поверхности Кунса

Известны четыре граничные кривые: P(u, 0),P(u, 1),P(0,w) иP(1,w).

Суммируя уравнения (2) и (3) получим:

Q(u,w) =P(u, 0) (1 –w) +P(u, 1)w+P(0,w) (1 –u) +P(1,w)u(4)

Однако анализ показывает, что в угловых точках и на границе получаем несоответствие исходным данным, т.е. Q(0, 0) =P(0, 0) +P(0, 0);Q(0,w) =P(0, 0)(1 –w) +P(0, 1)w+P(0,w) .

Исследование уравнения (4) показывает, что несоответствие возникает из-за того, что угловые точки просчитываются дважды. Например, P(0, 0) содержится в описании граничных кривых

P(u, 0) иP(0,w). Поэтому для правильного результата необходимо вычесть лишние угловые точки, т.е.:

Q(u,w) =P(u, 0) (1 –w) +P(u, 1)w+P(0,w) (1 –u) +P(1,w)u–P(0, 0)(1 –w)(1 –u) –

P(0, 1)(1 –u)w–P(1, 0)u(1 –w) –P(1, 1)uw(5)

В матричной форме его можно записать так:

P(0, 0) – P(0, 1) P(0, w) 1 – w

Q(u, w) = [1–u u 1] –P(1, 0) –P(1, 1) P(1, w) w (6)

P(u, 0)P(u, 1) 0 1

Функции (1 – u),u, (1 –w) называются весовыми функциями.

Участок бикубической поверхности

Используем параметрический многочлен 3-го порядка для описания граничных кривых

P(u, 0),P(u, 1),P(0,w) иP(1,w): (7)

Пусть 0 ≤t≤ 1. Производная от многочлена:

(8)

Полагая в (7) и (8)t=0 илиt=1 получаем:

Вматричной форме:

ИлиP = M B. Отсюда

Где Подставляя (11) в (7) получаем:

Или в общем случае, считая tпараметром,

Будем строить также как билинейный участок. Сначала построим поверхность удовлетворяющую граничным условиям на краях u= 0 иu= 1, затем поверхность, удовлетворяющую граничным условиямw= 0 иw= 1.Для получения бикубического участка объединим эти результаты. Тогда для первой линейчатой поверхности:

Приu=0Q(u,w) =P(0,w), т.е. удовлетворяет граничным условиям. Аналогично, линейчатая кубическая поверхность, удовлетворяющая граничным условиям на краях приw=const, будет:

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