Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Поверхности Безье: Алгоритм de Casteljau

Читайте также:
  1. CRC-алгоритмы обнаружения ошибок
  2. II. Исследования на поверхности Марса.
  3. VII. Алгоритмы продаж
  4. Алгоритм 4. Транспонування бази даних
  5. Алгоритм 5. Пошук автофильтром
  6. Алгоритм Apriori
  7. Алгоритм De Boor

Алгоритм de Casteljau можно расширить и для случая поверхностей. Говоря точнее, можно применить алгоритм de Casteljau несколько раз для того, чтобы найти соответствующую точку на поверхности Безье p (u, v) для данного (u, v). Эта страница описывает это расширение алгоритма, основываясь на понятии изопараметрических кривых, рассмотренном на предыдущей странице.

Вспомним, что уравнение поверхности Безье

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

Для i = 0, 1,..., m, определим q i (v) следующим образом:

Для фиксированного v, имеем m +1 точек q 0(v), q 1(v),..., q m (v). Каждое q i (v) - это точка на кривой Безье, определяемой контр. точками p i 0, p i 1,..., p in. Подставляя эти значения обратно в уравнение поверхности, получим

Это значит, что p (u, v) - это точка кривой Безье, определяемая m +1 контр. точками q 0(v), q 1(v),..., q m (v). Таким образом, приходим к следующему выводу:

Чтобы найти точку p(u, v) на поверхности Безье, мы можем найти m +1 точек q0(v), q1(v),..., q m (v) и затем из этих точек получить p(u, v).

Этот вывод дает нам простой способ вычисления p (u, v) для данных (u, v). И вот почему. Так как каждое q i (v) - это точка на кривой Безье, определяемой i -м рядом контр. точек: p i 0, p i 1,..., p in. Таким образом, для i -го ряда и данного v, мы можем применить алгоритм de Casteljau для кривой Безье, чтобы вычислить q i (v). После m +1 применений алгоритма de Casteljau (т.e. по разу на каждый ряд), мы получим q 0(v), q 1(v),..., q m (v). Затем, снова применяя алгоритм de Casteljau к этим m +1 контр. точкам для u, получим итоговую точку p (u, v) на поверхности!

Следующая схема иллюстрирует это понятие. Данная поверхность - это поверхность Безье степени (2,2), определяемая контрольной сеткой 3x3. Пусть u = 2/3, а v = 1/3. Чтобы определить q 0(1/3), берем 0-й ряд контр. точек p 00, p 01 и p 02 и применяем алгоритм de Casteljau к этой кривой Безье для v = 1/3. Повторяем это с первым и вторым рядом для v = 1/3. Отсюда получим три промежуточные точки q 0(1/3), q 1(1/3) и q 2(1/3). Наконец, применяем алгоритм de Casteljau к этим трем новым точкам при u = 2/3. Результат - точка p (2/3,1/3), показана на рисунке желтым.

Далее показан пример нахождения точки с изображенной поверхностью Безье. Контр. точки показаны белым. В этой контрольной сетке четыре ряда и пять столбцов и поэтому степень поверхности - (3,4). Для каждого ряда, промежуточные ломаные, используемые в алгоритме de Casteljau, показаны красным. Четыре промежуточных контр. точки q 0, q 1, q 2 и q 3 также показаны на рисунке. Промежуточные ломаные для этого применения алгоритма de Casteljau показаны синим, а конечная точка p (u, v) на поверхности показана темной сферой.

В итоге, алгоритм сводится к следующему:

Вход: a m +1 рядов и n +1 столбцов контр. точек и (u, v).
Выход: точка на поверхности p (u, v)
Алгоритм:

for i:= 0 to m do

Begin

Применяем алгоритм de Casteljau к i -му ряду контр. точек по v;
Пусть полученная точка будет q i (v);

End

Применяем алгоритм de Casteljau к q 0(v), q 1(v),..., q m (v) по u;
Полученная точка -это p (u, v);


Дата добавления: 2015-10-29; просмотров: 143 | Нарушение авторских прав


Читайте в этой же книге: Важные Свойства Кривых NURBS | NURBS: Изменение Весов | Углубленное Рассуждение | Введение Одиночного Узла | Пример 2: Введение Узла в Существующем Простом Узле | Введение Узла для Кривых NURBS | Замечание [Наблюдение] II: Вычисление Новых Контрольных Точек | Алгоритм De Boor | Алгоритм De Boor для Кривых NURBS | Параметрические Поверхности |
<== предыдущая страница | следующая страница ==>
Неявные Поверхности| Поверхности B-spline: Важные Свойства

mybiblioteka.su - 2015-2024 год. (0.007 сек.)