
ALL
.pdf

КУБИЧЕСКОЕ ПЕРИОДИЧЕСКОЕ МАТРИЧНОЕ ПРЕДСТАВЛЕНИЕ БЕТА-СПЛАЙНОВ
•Затем можно получить различные конические сечения (рис.), используя следующие значения параметра r.
•r > 1/2, ω1 > 1 участок гиперболы,
•r = 1/2, ω1 = 1 участок параболы,
•r < 1/2, ω1 < 1 участок эллипса,
•r = 0, ω1 = 0 участок прямой линии.
•Чтобы, например, сгенерировать четверть дуги единичной окружности в первом квадранте плоскости xy , положим ω1 = cos и следующим образом выберем контрольные точки.
•p0 = (0, 1), p1 = (1, 1), p2 = (1, 0).
•Полную окружность можно получить, сгенерировав участки в трех других квадрантах с использованием схожего размещения контрольных точек. Полную окружность можно получить по участку в первом квадранте, используя геометрические преобразования на плоскости xy. Например, можно симметрично отобразить четверть дуги окружности относительно осей x и y и получить дуги в других квадрантах.
•Однородное представление единичной дуги окружности в первом квадранте плоскости xy
•параметрические уравнения окружности для первого квадранта.
•,
ПРЕОБРАЗОВАНИЕ МЕЖДУ СПЛАЙНОВЫМИ ПРЕДСТАВЛЕНИЯМИ
•Удобно переходить с одного сплайнового представления на другое.
•Пусть дано сплайновое описание объекта, которое можно выразить с помощью произведения матриц.
•P(u) = U Mspline1 Mgeom1,
•где Mspline1 матрица сплайнового представления, а Mgeom1 вектор-столбец геометрических условий (например, координат контрольных точек).
•перейти ко второму представлению сплайновой матрицы Mspline2, необходимо определить матрицу геометрических условий Mgeom2, которая дает такую же векторную точечную функцию объекта. Следовательно,
•P(u) = U Mspline2 Mgeom2
•или
•U Mspline2 Mgeom2 = U Mspline1 Mgeom1.
•Вычисляя отсюда Mgeom2, получаем.
•Mgeom2 =M-1spline2Mspline1 Mgeom1 = Ms1,s2 Mgeom1.
•Матрица преобразования первого сплайнового представления во второе.
•Ms1,s2 = M-1spline2Mspline1.
•Неравномерный би-сплайн нельзя описать общей сплайновой матрицей. Однако можно переупорядочить последовательность узлов, чтобы перевести представление в форме неравномерного би-сплайна в представление Безье. Затем матрицу Безье можно преобразовать в любую другую форму.

ПРЕОБРАЗОВАНИЕ МЕЖДУ СПЛАЙНОВЫМИ ПРЕДСТАВЛЕНИЯМИ
•Пример
•рассчитывается матрица преобразования, переводящая периодическое представление кубическими би-сплайнами в представление кубическими кривыми Безье.
•Кроме того, матрица преобразования, переводящая представление кубическими кривыми Безье в периодическое представление кубическими би-сплайнами, выглядит так.
•
•.
ОТОБРАЖЕНИЕ СПЛАЙНОВЫХ КРИВЫХ И ПОВЕРХНОСТЕЙ
•Чтобы отобразить сплайновую кривую или поверхность, необходимо определить координаты точек кривой или поверхности в пикселях экрана. Т.е. нужно вычислить параметрические полиномиальные сплайновые функции с определенным шагом в области определения функций. Для эффективного выполнения этих расчетов было разработано несколько методов.
•ПРАВИЛО ГОРНЕРА
•Простейшим методом расчета значения полинома является правило Горнера (Horner's rule), - вычисления определяются через последовательную факторизацию.
•Схема требует одного умножения и одного сложения на каждом этапе, причем полином n-й степени обрабатывается за n шагов.
•Пусть дано представление кубическими сплайнами, где координата x выражается
• x(u) = a u3 |
+ b u2 |
+ c u + d , |
аналогично для координат y и z. |
|
x |
x |
x |
x |
|
•При конкретном значении параметра u значение данного полинома вычисляется в следующем факторизованном порядке.
•x(u) = [(ax u + bx)u + cx]u + dx.
•Расчет каждого значения x требует трех умножений и трех сложений, поэтому, чтобы определить все координаты (x, y, z) на кривой кубического сплайна, требуется девять умножений и девять сложений.
•Чтобы сократить объем вычислений в схеме Горнера, можно применить дополнительную факторизацию, (актуально для полиномов степени > 3).
•Расчет координат точек в диапазоне изменения сплайновой функции может выполняться гораздо быстрее, если использовать правые разности или метод деления сплайна.
РАСЧЕТ ПО ПРАВЫМ РАЗНОСТЯМ
•Быстрый метод вычисления значений полиномов - рекурсивная генерация последовательных значений с помощью приращений ранее рассчитанных величин, например.
•xk+1 = xk + xk.
•xk на каждом шаге - правая разность. Правые разности находятся по интервалам, выбранным для параметра u.
•Общий диапазон u делят на интервалы фиксированного размера , 2 последовательные
положения x: xk = x(uk) и xk+1 = x(uk+1), где uk+1 = uk + , k = 0, 1, 2, . . . и u0 = 0.
•Полиномиальное представление для точек с координатами x на линейной сплайновой кривой x(u) = ax u+bx.
•Две последовательные по x точки
• xk = ax uk + bx, |
xk+1 = ax(uk + ) + bx. |
•правая разность.
•xk = xk+1 – xk = ax .
•В данном случае правая разность постоянна. Для полиномов больших порядков правая разность сама - полином от параметра u. Его степень на единицу меньше степени исходного полинома.
•Для представления кубическими сплайнами, две последовательные точки с координатами x имеют следующее полиномиальное представление.
• x |
= a u3 |
+ b u2 |
+ c |
u |
+ d , |
x |
= a (u |
+ )3 + b (u |
+ )2 + c (uk + ) + d . |
|
k |
x k |
x k |
x |
k |
x |
k+1 |
x k |
x k |
x |
x |
•прямая разность вычисляется как
•xk = 3ax u2k + (3ax 2 + 2bx )uk + (ax 3 + bx 2 + cx )
•и является квадратной функцией параметра uk.
РАСЧЕТ ПО ПРАВЫМ РАЗНОСТЯМ
•xk полиномиальная функция от u, ту же процедуру последовательного приращения можно использовать для получения последовательных значений xk.
•xk+1 = xk + 2xk,
• |
где вторая правая разность является линейной функцией 2xk = 6ax 2uk + 6ax 3 + 2bx 2. |
• |
Еще раз повторяя данную процедуру, можно записать 2xk+1 = 2xk + 3xk |
•и получить третью правую разность в виде постоянного выражения
•3xk = 6ax 3
•Уравнения описывают расчет точек кубической кривой с помощью приращений по правым разностям.
•Начиная с точки u0 = 0 и двигаясь с постоянным шагом , вычисляем исходные значения координаты x и первые две правые разности
•x0 = dx,
•x0 = ax 3 + bx 2 + cx ,
•2x0 = 6ax 3 + 2bx 2.
•После того как данные исходные значения вычислены, расчет остальных последовательных значений координаты x требует только трех операций сложения.
•Метод правых разностей можно применить для определения точек на сплайновой кривой любой степени n. Все последовательные точки с координатами (x, y, z) вычисляются в цикле, содержащем 3n операций сложения. Для поверхностей инкрементные расчеты применяются к параметру u и параметру v.

МЕТОДЫ ПОДРАЗДЕЛЕНИЯ
•Подразделение сплайна проще всего применяется к участкам кривой Безье - кривая начинается в первой контрольной точке и заканчивается в последней, параметр u всегда изменяется в диапазоне от 0 до 1, легко определить, какие контрольные точки достаточно близких траектории кривой.
•Чтобы применить подразделение Безье к другим сплайновым представлениям.
•1. Преобразовать текущее сплайновое представление в представление Безье.
•2. Применить алгоритм подразделения Безье.
•3. Преобразовать представление Безье в исходное сплайновое представление.
• До деления |
После деления |
•Рис. Подразделение кубического участка кривой Безье на два сегмента с четырьмя контрольными точками каждый
•На рис. показан первый этап рекурсивного подразделения кубической кривой Безье. Точки на
кривой Безье описываются параметрической точечной функцией P(u) при 0 u 1. На первом этапе подразделения используется средняя точка P(0, 5), делящая исходную кривую на два сегмента. Затем первый сегмент описывается точечной функцией P1(s), а второй функцией
P2(t), где
•s = 2u при 0,0 u 0,5,
•t = 2u – 1 при 0,5 u 1,0.
МЕТОДЫ ПОДРАЗДЕЛЕНИЯ
•Каждый участок кривой имеет такое же число контрольных точек, что и исходная кривая. Граничные условия (одинаковые положения и производные по параметру) на концах двух участков кривой должны согласовываться с положениями и значениями производных исходной кривой P(u). Получим 4 условия на каждый сегмент кривой, которые можно использовать для определения положений контрольных точек. В первом сегменте контрольные точки.
•p1,0 = p0,
•p1,1 = ½ (p0 + p1),
•p1,2 = ¼ (p0 + 2p1 + p2),
•p1,3 = 1/8 (p0 + 3p1 + 3p2 + p3).
•На втором сегменте контрольные точки.
•p2,0 = 1/8 (p0 + 3p1 + 3p2 + p3),
•p2,1 = ¼ (p1 + 2p2 + p3),
•p2,2 = ½ (p2 + p3),
•p2,3 = p3.
•С помощью операций сложения и смещения (деления на 2) можно установить эффективный порядок вычисления нового набора контрольных точек.
•p1,0 = p0,
•p1,1 = ½ (p0 + p1),
•T = ½ (p1 + p2),
•p1,2 = ½ (p1,1 + T),
•p2,3 = p3,
•p2,2 = ½ (p2 + p3),
•p2,1 = ½ (T + p2,2),
•p2,0 = ½ (p1,2 + p2,1),
•p1,3 = p2,0.

МЕТОДЫ ПОДРАЗДЕЛЕНИЯ
•Предыдущие шаги можно повторять сколько угодно. Критерии остановки (варианты):
1.Для каждого сегмента проверять расстояние от первой контрольной точки до последней.
2.Измерение расстояния между соседними парами контрольных точек.
3.Набор контрольных точек в каждом сегменте выстроится примерно по прямой линии.
•Методы подразделения можно применить к кривым Безье любой степени. Полином Безье степени n -1 имеет следующие 2n контрольных точек на обеих исходных сегментах кривой.
• |
, k = 0, 1, 2, . . . , n, |
•где C(k, j) и C(n – k, n – j) биномиальные коэффициенты.
•Методы подразделения можно применять непосредственно к неравномерным би-сплайнам, добавляя значения в вектор узлов.