УДК 681.3.513
Е.А. Никулин
НОВЫЙ МЕТОД ИЗМЕНЕНИЯ ПОРЯДКОВ КРИВЫХ И ПОВЕРХНОСТЕЙ БЕЗЬЕ
Нижегородский государственный технический университет им. Р.Е. Алексеева
Предлагается новый метод изменения порядков полиномов кривых и поверхностей Безье, сводящийся к единой формуле как для увеличения, так и уменьшения размерностей характеристической сети.
Ключевые слова: кривая, поверхность, Безье, полином, узловая сеть.
Широкое распространение в практике конструирования сложных линий и поверхностей получили линии и поверхности Безье, обладающие большой гибкостью, простотой модификации и свойством принадлежности выпуклой оболочке массива узловых точек. Одной из важных операций модификации объекта Безье является изменение числа точек, определяющих его конфигурацию. Увеличение этого числа позволяет повысить гибкость объекта, а уменьшение без изменения формы объекта - понизить сложность его модели и трудоемкость ее использования.
1. Изменение порядка линии Безье
Начнем рассмотрение проблемы с однопараметрической векторной модели линии Безье, описываемой в пространстве Rr размерности re{2, 3} следующими разложениями: • по узловым точкам u0 ^ un eRr, составляющим матрицу Un =[u0 u ... un]eRrx(ra+1):
n
p(0=&i(0u =UnBn(t) vte[0, 1], (1)
i=0
где Ьш(X)=С1пХ (1-Х)п 1 — весовые функции базиса Бернштейна, составляющие век-
тор-сголбед Вп(0=[Ьпо(0 Ьп1() ••• Ьпп(0Г;
• по базисным функциям параметра, составляющим вектор-столбец Тп(X)=[1 X •.. Хп]г:
п
Р(х)=&/ =8пТп (X) УХе[0, 1], (2)
i=0
где Sn =[s0 s1 ... sn]eRrx(n+1) - матрица параметрических коэффициентов s0 ^ sn eRr;
по узловым точкам и базисным функциям параметра:
= и„И„Т„ (X) УХе[0, 1], (3)
г=0 у=0
где ИпеЯ(п + 1)х(п + 1) — верхняя треугольная матрица весовых коэффициентов
ку =(-1)у-гСЩС' У0 < г <у < п, (4)
связанная с вектором Вп(Х) и матрицей 8п следующими соотношениями:
В„(0 = ^^(УХ = и„И„. (5)
Модификация характеристической полилинии (ХП) и0иь..ип означает проведение операций с ее вершинами: перемещения имеющихся, добавления новых и удаления лишних. После каждой операции кривая Безье перестраивается по (1). Если перенос узловой точки не
© Никулин Е.А., 2011.
вызывает затруднений (это можно сделать ручным вводом ее координат или вектора переноса, либо захватом и перетаскиванием мышью), то добавление или удаление вершин ХП влечет изменение порядка полинома до п'фп и новые размер и состав узловой матрицы и'п■.
Несомненный научный интерес представляет такое изменение порядка линии Безье, при котором ее форма остается неизменной, т. е. р'^ )=р^). В литературе по компьютерной геометрии и графике дается решение лишь одной из двух названных задач изменения порядка — только увеличения и только на единицу, т. е. п'=п+1. В [1] предлагается умножить сумму (1) на тождество (^ + 1 - ¿) = 1, формально инкрементирующее степень полинома, и
привести слагаемые к виду с весовыми функциями п + 1-й степени (1-?)п+1-п,
/е[0, п + 1]. В результате не совсем простых преобразований получается следующий алгоритм инкрементирования размера характеристической полилинии:
и ■ = Иг
и ■
п+1
и
п-1"
+ 1 1-
п+1
и Уп =1, п , ип+1 =
и,
(6)
В [2] этот же результат приведен без вывода. Но ни в одном из этих уважаемых источников не исследованы свойства полученной линии р' ^).
Ключевым моментом разрабатываемого нового алгоритма является тот факт, что реальная степень полинома р ' (/)=80 +8^+.. .+8п+1п1, повторяющего форму полинома (2), равна
2
п, а не п + 1, так же, как, например, реальная степень полинома 1 + 2t + 0t равна одному, а не формально двум. Действительно, нулевая разность векторных полиномов р' ^)-р^), равная
(80 -80 )+(81 -81 >+...+& -8п Г +8п+1п1 =Огд на всем непрерывном интервале te[0, 1], возможна лишь при 8п' = 8п У/е[0, 1] и 8^+1 = Ог1.
Здесь и далее Ому обозначает нулевую МхЫ -матрицу. Таким образом, связав векторы параметрических коэффициентов 8п = ЦпНп и 8п+1 = ип+1Ни+1 зависимостью 8п+1 = [8п Ог1 ] и
вычислив по (4) невырожденные матрицы весовых коэффициентов Н п и Нп + 1, получим вектор вершин новой характеристической полилинии размера п + 1:
ип+1 =[ипНп Ог,1 ]Н-+1 = ипНпКпп+1, (7)
где Кп,п+1 = Еп+1,п+2Н-+1 — верхний (п + 1)х(п + 2) -блок матрицы Н-+1. Здесь и далее Ему
обозначает МхЫ -матрицу нулей с mm{M,N} единицами на главной диагонали.
Простота полученного матричного решения несравнима с трудоемким в выводе и относительно сложным в программировании циклическим алгоритмом (6). А естественное обобщение формулы (7) на характеристическую полилинию произвольного размера п'>п :
ип-=[ипНп °г,п'-п ]Н-'1 =ипНпКп,п' , (8)
где Кп п' = Еп+1 п'+1Н-., способное увеличить порядок линии Безье сразу на п'-п >2 единиц, вообще нигде не рассматривалось, хотя можно было потрудиться и получить аналогичный (6) алгоритм путем умножения (1) на ^+1-1)п -п и сборки слагаемых с весовыми функциями С'п■ ^ (1-1)п -п .
Пример 1. Проиллюстрируем работу методов (7), (8) увеличения порядка линии Безье без изменения ее формы на трех задачах.
1. Преобразуем по (7) двухзвенную ХП и0и1и2 в трехзвенную и0и1и2и3 (рис. 1, а) с помощью матриц Н2 и Н3, элементы которых вычислены по (4):
Но
1 - 2 1" 0 2 - 2 0 0 1
1 - 3 3 -1"
0 3 - 6 3
0 0 3 - 3
0 0 0 1
Н
-1
11 11 0 13 2/3 1 0 0 1/3 1 0 0 0 1
К
2,3 -
11 11" 0 13 2/3 1 0 0 1/3 1_
3
H2K2,3 :
Un= U
1 13 0 0 0 2/3 2/3 0 0 0 1/3 1_
1 3
0 , ul=-u0 +ТU1 '
[u0 ul u2 u3] = [u0 U1 u2 ]H2K2,3,
. 2 1
u-
3
u H— u9 . 1 3 2
u-i = u
2. Преобразование по (7) трехзвенной ХП и0и1и2и3 в четырехзвенную и0и|и2и3и4
(рис. 1, б) выполним с помощью матриц И3 и И4:
Ил
1 - 4 6 - 4 1" 0 4 -12 12 -4 0 0 6 -12 1 0 0 0 4 -4 0 0 0 0 1
H
-1
11 1 1 1 0 1/4 12 3/4 1 0 0 16 1/2 1 0 0 0 14 1 0 0 0 0 1
K
3,4 :
11 1 11"
0 14 1/2 3/4 1
0 0 1/6 1/2 1
0 0 0 1/4 1_
H3K 3,4
u-= u
0 = u0 •
1 14 0 0 0" 0 3/4 1/2 0 0 0 0 1/2 3/4 0 0 0 0 1/4 1_
' 1 3 u- = u0 +— ub 1 4 0 4 1
[u0 ul u2 u3 u4 ] = [u0 u1 u2 u3]H3K3,4
' 1 J
u2 =-u1 +-u2 '
' 3 i
u- =—u9 H— u • 3 4 2 4 3'
u-= u
Результаты решения обеих задач полностью совпадают с (6).
а) б)
Рис. 1. Увеличение порядков кривых Безье
б)
3. Создадим по (8) пятизвенную ХП и0и|и2и3и4и5 из трехзвенной и0и1и2и3 (рис. 1, в) с помощью матрицы И5:
H
1 - 5 10 -10 5 -1" 0 5 -20 30 -20 5 0 0 10 -30 30 -10 0 0 0 10 - 20 10 0 0 0 0 5 -5 0 0 0 0 0 1_
1 0.4 0.1 0 0 0" 0 0.6 0.6 0.3 0 0 0 0 0.3 0.6 0.6 0 0 0 0 0.1 0.4 1
H-
11 1 1 11
0 0.2 0.4 0.6 0.8 1
0 0 0.1 0.3 0.6 1
0 0 0 0.1 0.4 1
0 0 0 0 0.2 1
0 0 0 0 0 1
K 3,5 =
11 1 1 11
0 0.2 0.4 0.6 0.8 1
0 0 0.1 0.3 0.6 1
0 0 0 0.1 0.4 1
H3K 3,5
, [u0 ul u2 u3 u4 u5 ] = [u0 u1 u2 u3]H3K3,5,
, . 4un + 6u ? un + 6u + 3u9 , 3u + 6u + u t 6u + 4u
u0 = u0, u- =—0-1, u2 =—-1-u3 =—1-2-u4 = 2 3
10
10
10
10
и5 = и 4.
Вот так вместо двух преобразований, поочередно выполняемых по (6), сразу создается шеститочечная характеристическая полилиния.
Операция удаления лишней вершины из полилинии и0иь..ип, состоящей из п > 1 отрезков, производится для уменьшения ее избыточного размера и исключения характеристических точек, слабо влияющих на форму линии Безье. Наименьшим влиянием обладает срединная точка ит с округленным до ближайшего целого числа номером т = (п / 2) (при нечетном п таких точек две — с номерами |_п / 2] и Гп / 2]. Ее вес не превышает величины Ъпт(т / п), стремящейся к нулю при больших значениях п. Таким образом, центральные точки многозвенных ХП можно удалять почти безболезненно для формы линии Безье, которая в результате этой операции все же изменяется.
Возможность понижения порядка линии Безье без изменения ее формы определяется реальной степенью полинома п', которая должна быть меньше формальной степени п, задаваемой числом звеньев ХП и0иь..ип. Примеры различия этих степеней дают совпадающие линии на рис. 1, построенные на ХП разных размеров. Назовем разность фор-
мальной и реальной степеней полинома дефектом степени ё=п—п'.
Дефект степени полинома равен числу нуль-векторных полиномиальных коэффициентов 8п'+1 =.. .=ъп = Ог1 на правом конце матрицы 8п = ипНп. Если расположение характеристических точек и0 - ип таково, что дефект степени ё> 0, то минимальная ХП и0и.. .и^ состоит из п'=п—ё звеньев, а п'+1 ее вершин находятся из уравнения ипНп =[ип>Нп< Ога] с использованием матрицы =НпЕп+1,п+1 - левого (п+1)х(п'+1) -блока матрицы Нп:
ип ' = ипОпп Л—1 .
(9)
Пример 2. Линия Безье пятого порядка построена на ХП с вершинами и0 =[10 0]т,
и1 =[22 6]т, и2 =[19 12]т, и3 =[11 15]т, и4 =[8 12]т и и5 =[20 0]т (рис. 2). Найти реальную степень полинома и построить характеристическую полилинию минимального порядка.
и2
и
3 О
и °
и4 ч
и и
Р(0\
•яи
и1
и,
и
и
Рис. 2. Уменьшение порядка кривой Безье
= изН5 =
Решение. С помощью матрицы Н5 из примера 1 вычислим матрицу полиномиальных коэффициентов кривой Безье:
Г10 60 —150 100 0 0" _ 0 30 0 —30 0 0_ Два правых нулевых столбца = 85 = О2,1 дают дефект степени полинома ё = 2 и его реальную степень п'=3. По (9) находим характеристические точки кубической кривой Безье, полностью совпадающей с исходной линией формально пятого порядка:
О
5,3 "
1 —5 10 —10" "1 —2/3 1 —4
0 5 —20 30 0 5/3 —10/3 15
0 0 10 —30 г тт -1- 0 0 10/3 —20
0 0 0 10 , О5,3Н3 0 0 0 10
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
[u0 ul u2 u3]=[u0 u1 u2 u3 u4 u5]G5 3H-1
u-= un
u,
5u1 - 2u0 ' 3
30" 10
u,
10u2 -10u1 + u0 ' 3
" 0 " 20
u-
10u3-20u2 +15u1-4u0 " 3
20" 0
Алгоритмы увеличения (8) и уменьшения (9) порядка характеристической полилинии кривой Безье сливаются в единый алгоритм изменения ее порядка с п до п':
ип-= ипИпЕп+1,п'+1И-'1. (10)
Повышение порядка линии Безье возможно до произвольного формального значения п'>п, при этом реальная степень полинома остается равной п. Понижение порядка до реального значения п'<п возможно лишь при наличии у полинома дефекта степени ё=п—п'>0, равного числу правых нулевых столбцов матрицы 8« = ипИп.
2. Изменение порядков поверхности Безье
Распространим линейный алгоритм (10) на изменение порядков п и т двухпараметри-ческого полинома поверхности Безье в пространстве Я3:
р(х,т)=вп ДОптВт(х)=Тпт (ОЭптТт (х)=ТпТ (х)Ипип,тИтТт (х) УХ, хе[0, 1], (11) строящейся на характеристической полигональной сети (ХПС) ип,т = (игу). Сеть составлена из узловых точек иу, пронумерованных индексами ге[0, п] и у'е[0, т] в порядке соединения вершин ребрами. Аналогично (5) элементы разложений (11) связаны соотношениями
в„(0 = Н„Т„(0, В„,(х) = Н„,Т„,(х), =н;,1]11п1нп1. (12)
На рис. 3 показано несколько поверхностей, построенных по (11). Им присущи все свойства объектов Безье, подробно рассмотренные в [1 - 3].
u
00
43
u
U91 U92 u,
uoo^
42 U
U20 , U31
93
U U,0 52 U62
U41—50 U60
\ ^ 1
61
U32 *U40
Рис. 3. Поверхности Безье
Операции добавления и удаления узловых вершин изменяют размеры сети и степени n и m двухпараметрического полинома p(t,T). В отличие от кривой Безье, в ХПС одноименной поверхности добавляются или удаляются не отдельные вершины, а только целые полилинии u0ku1k ... unk и/или щоии ... ukm в параметрических направлениях t и/или т. В результате в новой сети иП 'm ={uj} с узловыми размерностями (n '+1)x(m '+1) перераспределяется влияние вершин на значения функции
n' m'
Р '(t,T)=^ZbnV(t)bmj(T)uj = ВП '(t)Un-m'Bm'(т) Vt, TG[0, 1]. (13)
i=0 j=0
Рассмотрим два способа изменения размеров характеристической сети, отличающиеся изменчивостью формы поверхности Безье.
1. В ручном режиме добавление новых или удаление лишних полилиний ХПС приводит к перенумерации ее вершин и перестройке поверхности по (13), поскольку при новых степенях n Фn' и mФm' ее определяют уже другие весовые функции Бернштейна
bn i (t) и bmj (т).
Таким образом, ручное изменение порядков характеристической полигональной сети изменяет форму поверхности Безье. На рис. 4 показано, как это выглядит для второй поверхности из рис. 3 при добавлении в ее ХПС новой полилинии u^u^u^, и удалении средней полилинии U30U31U32.
Рис. 4. Ручное изменение порядков поверхности Безье
2. В интерактивном проектировании более удобно алгоритмическое изменение размеров ХПС, при котором происходит перераспределение ее вершин с сохранением формы поверхности Безье. Это позволяет быстро получить новую характеристическую сеть желаемых размерностей и продолжить ее дальнейшее редактирование, плавно и предсказуемо конструируя требуемую поверхность.
Новая конфигурация ХПС находится из условия совпадения старой (11) и новой (13) моделей р(^,т)=р :
Т ( )Н; ' т ' Нт' Тт' (т)=ТП (/ )НП ип,тНтТт (т).
Этому уравнению удовлетворяет поверхностное решение
'т' = (НиЕи+1,и '+1НЙ1) и„;т (НтЕт+1,т '+1Н»г1 ) > (14)
обобщающее линейный аналог (10) сразу на обе задачи — как добавление характеристических полилиний, так и их удаление. По (14) может быть найдена ХПС с увеличенной размер-
ностью в одном параметрическом направлении и с уменьшенной — в другом, например, с п'>п и т'<т. Более того, изложенный метод дает решения восьми задач изменения размерностей ХПС во всех возможных сочетаниях порядков п'<п , п'=п, п' >п и т'<т,
m'=m, m' > m .
Увеличение порядков характеристической сети п и/или т на ё=п'—п >0 и/или 5=т'—т > 0 возможно всегда. При этом матрицы полиномиальных коэффициентов
S ' =
Sn ',m
' S Q
n,m
d ,m+1
Sn,m' = [Sn,m | Qn+1,8 ] , Sn',m'z
!Q
n+1,8
Qd,m+l \ Qd,8
(15)
вычисляемые на новой сетке и ' по формуле $!п'т' = Ни'п' т• Ит-, содержат ё нулевых строк
и/или 5 нулевых столбцов. Это означает, что реальные порядки биполиномиальной функции р'(¿,т) остались равными п и т.
Уменьшение размеров характеристической сети на ё=п—п'>0 и/или 5=т—т' >0 возможно не всегда, а лишь при условии, что реальные порядки поверхности р(Х,т), зависящие от расположения вершин ее ХПС, меньше формальных, т. е. п'<п и/или т'<т . Дефекты степеней ё и 5 равны числам нулевых строк и столбцов в матрице полиномиальных коэффициентов = Нп иптНт, принимающей одну из следующих форм:
S
Sn' ,m
Q
d ,m+1
[s
In
n,m ' I Qn+1,S
Sn ',m'
Q
!Q„'.
-i
n '+1,8
d,m +1
Q
d ,8
(16)
В отсутствие нулевых строк и столбцов понижение порядков ХПС невозможно.
Работа алгоритма изменения размерностей ХПС проиллюстрирована на рис. 5. Исходная поверхность (рис. 5, а) порядков п = 4 и т = 3 построена на сетке и4,3 из 5x4 узлов и имеет в (16) матрицу 84;3 первого типа, содержащую одну нижнюю нулевую строку. Значит, дефект степени равен ё = 1, а реальный ¿-порядок полинома р(7,т) составляет п'=п—ё=3 . Это подтверждает поверхность (рис. 5, б), построенная на сетке и^ 3 узловой размерности 4x4.
Третья поверхность (рис. 5, в) демонстрирует возможность одновременного понижения Х-порядка до реального п'=3 и формального повышения т-порядка до формального т'=6.
]
Рис. 5. Алгоритмическое изменение порядков поверхности Безье
Вывод
В результате предпринятых усилий разработан новый единый алгоритм произвольного изменения порядков линий и поверхностей Безье. Получены условия, при которых становится возможным понижение порядков полиномов этих графических объектов.
Библиографический список
1. Компьютерная геометрия: учеб. пособие для студ. вузов / Н.Н. Голованов [и др.]. - М.: Издательский центр «Академия», 2006. - 512 с.
2. Роджерс, Д. Математические основы машинной графики / Д. Роджерс, Дж. Адамс. - М.: Мир, 2001. - 604 с.
3. Фокс, А. Вычислительная геометрия. Применение в проектировании и на производстве / А. Фокс, М. Пратт. - М.: Мир, 1982. - 304 с.
Дата поступления в редакцию 01.02.2011
E.A Nikulin
NEW METHOD OF BEZIER CURVES AND SURFACES ORDER MODIFICATION
Proposing a new method to modify an order of polynoms for Bezier curves and surfaces which reduces to a single formula for both increasing and decreasing of a characteristic grid dimension.
Key words: curve, surface, Bezier, polynom, meshed network.