Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ALL

.pdf
Скачиваний:
278
Добавлен:
12.02.2018
Размер:
15.74 Mб
Скачать

КУБИЧЕСКОЕ ПЕРИОДИЧЕСКОЕ МАТРИЧНОЕ ПРЕДСТАВЛЕНИЕ БЕТА-СПЛАЙНОВ

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

В качестве примера описания конических сечений рациональными сплайнами используем квадратный би-сплайн (d = 3), три контрольные точки и открытый вектор узлов

{0, 0, 0, 1, 1, 1},

который представляет квадратный сплайн Безье. Затем весовым функциям присваиваются такие значения.

ω0 = ω2 = 1

• ω1 = r/ {1 – r},

0 r < 1,

представление рациональными

би-сплайнами

Рис. 1. Конические сечения, генерируемые с использованием различных значений весового коэффициента рационального сплайна ω1

Рис. 1. Дуга окружности в первом квадранте плоскости xy

КУБИЧЕСКОЕ ПЕРИОДИЧЕСКОЕ МАТРИЧНОЕ ПРЕДСТАВЛЕНИЕ БЕТА-СПЛАЙНОВ

Затем можно получить различные конические сечения (рис.), используя следующие значения параметра 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) биномиальные коэффициенты.

Методы подразделения можно применять непосредственно к неравномерным би-сплайнам, добавляя значения в вектор узлов.

Соседние файлы в предмете Компьютерная Графика