Научная статья на тему 'Матричные методы рекластеризации составных объектов Безье'

Матричные методы рекластеризации составных объектов Безье Текст научной статьи по специальности «Математика»

CC BY
57
15
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КРИВАЯ / ПОВЕРХНОСТЬ / БЕЗЬЕ / ПОЛИНОМ / СЕГМЕНТ / СОПРЯЖЕНИЕ / BéZIER / CURVE / SURFACE / POLYNOM / SEGMENT / CONJUGATION

Аннотация научной статьи по математике, автор научной работы — Никулин Е. А.

Тема работы: разработка алгоритмов редактирования узловых сетей, на которых строятся составные линии и поверхности Безье, произвольно изменяющих число и размерности кластеров без изменения формы сегментов. Цель работы: повышение гибкости редактирования составных объектов Безье при увеличении числа и размер -ностей кластеров, с одной стороны, и предельно возможное упрощение их моделей, достигаемое уменьшением числа и размеров кластеров с другой. Метод решения. Алгоритмы рекластеризации основаны на матричном подходе, дающем единую компактную формулу пересчета кластеров как в сторону увеличения, так и уменьшения их размеров. Оригинальность. Разработанные методы позволяют увеличивать размерности кластеров на произвольные значения, а уменьшать до предельно допустимых значений без изменения формы объектов Безье. Выводы. В работе получены единые матричные алгоритмы реструктуризации узловых сетей составных линий и поверхностей Безье, повышающие гибкость их редактирования.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

MATRIX BASED METHODS OF COMPOSITE BÉZIER OBJECTS RECLASTERIZATION

Subject: modification algorithms for node networks which are used to create compound lines and Bézier surfaces, allowing to randomly change cluster count and dimensions keeping segment shape unchanged, are developed. Purpose: on the one hand it is to increase a modification flexibility of compound Bézier objects while increasing cluster count and dimensions, on the other hand it is to simplify as much as possible their models due to reducing cluster count and dimensions. Methodology: proposed reclusterization algorithms use a matrix based approach which provides a single short formula to recalculate clusters increasing their size as well as reducing it. Originality/value: methods developed in the present study allow to increase cluster dimensions to any value and decrease them to limiting values keeping the Bézier object shape intact. Findings: the article finds unique matrix-based algorithms for node network restructurization of compound lines and Bézier objects, which increases their utilization flexibility.

Текст научной работы на тему «Матричные методы рекластеризации составных объектов Безье»

УДК 681.3.513

Е.А. Никулин

МАТРИЧНЫЕ МЕТОДЫ РЕКЛАСТЕРИЗАЦИИ СОСТАВНЫХ ОБЪЕКТОВ БЕЗЬЕ

Нижегородский государственный технический университет им. Р.Е. Алексеева

Тема работы: разработка алгоритмов редактирования узловых сетей, на которых строятся составные линии и поверхности Безье, произвольно изменяющих число и размерности кластеров без изменения формы сегментов. Цель работы: повышение гибкости редактирования составных объектов Безье при увеличении числа и размер -ностей кластеров, с одной стороны, и предельно возможное упрощение их моделей, достигаемое уменьшением числа и размеров кластеров с другой.

Метод решения. Алгоритмы рекластеризации основаны на матричном подходе, дающем единую компактную формулу пересчета кластеров как в сторону увеличения, так и уменьшения их размеров.

Оригинальность. Разработанные методы позволяют увеличивать размерности кластеров на произвольные значения, а уменьшать до предельно допустимых значений без изменения формы объектов Безье. Выводы. В работе получены единые матричные алгоритмы реструктуризации узловых сетей составных линий и поверхностей Безье, повышающие гибкость их редактирования.

Ключевые слова: кривая, поверхность, Безье, полином, сегмент, сопряжение.

Широкое распространение в САПР получили объекты (линии и поверхности) Безье благодаря простоте их построения, хорошей гибкости и редактируемости. Ввиду ослабления влияния узловой вершины характеристической сети на форму объекта при ее удалении от краев сети лучше разделить сеть большого размера на кластеры небольших (не более пятого-шестого) порядков так, чтобы каждый кластер управлял формой своего сегмента.

К примеру, г-й полиномиальный сегмент составной линии порядка пг>1 может быть построен на характеристической полилинии (ХП) и^и^.-.и^, как бинарное разложение по узловым точкам, составляющим кластерную вектор-строку и, =[и/0 иг1 ... ип], и базисным функциям параметра составляющим вектор-столбец Тп, (?)=[1 1 ... ]т :

Р,-= и,И,ТП1 (1) V/=1,N, /е[0, 1]. (1)

к=0 у=0

Для целых т > 1 верхняя треугольная (т+1)х(т+1)-матрица Нт заполнена коэффициентами

кк]={-\У~катС) 0 < к < / < т. (2)

Гладкое сопряжение сегментов рг(^) и рг+1(^) достигается выбором характеристических узлов уравнивающих векторов их первых двух производных в общей точке ип. = и,-+1 о = Ч,- :

У,- (1)=п (Ч/ - и/лг -1 )=п/+1(и/+1,1 - Ч/ )= У+Л0)'

А,- (1)=п- (п- +1)(Ч/- 2и/П1 -1 + и-п1 -2 )=п,+1(П/+1 + 1)(ч,- - 2иг-+1д + иг-+1,2 )=А,-+1(о). (3)

На рис. 1 приведен пример шестисегментной составной линии Безье с порядками сегментов п1 = п2 = 5, п3 = 6, п4 = 4, п5 = 1, п6 = 3, гладким сопряжением сегментов в точке q1 и дважды гладким сопряжением в точке q2.

Составная поверхность Безье строится на характеристической полигональной сети (ХПС), матрично разбитой на N х М кластеров игу. Параметрическая модель (г, у)-го сегмента с порядками полиномов пг х т¡- имеет вид

р, (*,т)=ТП, (1 )иПг и у И^ Тт. (т) V/, у=1№ , ¿е[0, 1], те [0, 1]. (4)

На рис. 2 показана поверхность Безье, составленная из 5 х 4 = 20-ти бикубических сегментов с первым порядком гладкости их сопряжения друг с другом.

© Никулин Е.А., 2012.

Рис. 1. Составная линия Безье

Рис. 2. Составная поверхность Безье

В [1] предложен новый, матричный метод решения одной из задач модификации объектов Безье — изменения (увеличения и уменьшения) порядков полиномов линий и поверхностей с сохранением их формы. В данной статье рассматриваются еще две модификации, связанные с рекластеризацией узловой сети — изменением ее структуры путем разделения одного кластера на несколько или объединения нескольких кластеров в один. Учебники по компьютерной геометрии и графике [2, 3] содержат решение лишь линейного варианта задачи разделения одного сегмента на два такого же порядка. Целью настоящей работы является получение компактных матричных решений обеих задач рекластеризации как для линий, так и для поверхностей, и к тому же с выбором порядков сегментов.

Разделение линии Безье

Начнем с разделения линии Безье р(^) порядка п, построенной на ХП и = и0и ... ип, на два сегмента р1(^) и р2(^) порядков V > 1 и д > 1 с параметрическими моделями

р(0 = иНпТп(0, Р1(0 = бнх(0, Р2(0 = сндад [о, 1]. (5)

Новые сегменты и их кластеры Б = Ь0Ь1 ... Ь и С = с0с1 ... сд граничат по точке разделения р1(1) = К = р2(0) = с0. Рассмотрим два способа деления линии Безье и их свойства.

Ручной разрез исходной ХП по внутренней вершине и с номером vе[1, п - 1] разбивает ее на два кластера Б = и0 ... и^и и С = и^+1 ... ип порядков V и д = п - V. Поскольку линия р(^) не проходит через внутренний узел и^ а линии р1(^) и р2(^) в нем соединяются, то форма составной линии после такого деления изменяется (рис. 3, а). Кроме того, из-за произвольного расположения вершин и^ и и^2 новые кластеры не удовлетворяют условиям гладкого сопряжения (3). В результате сопряжение новых сегментов происходит с изломом, т. е. с потерей гладкости.

В рамках алгоритмического подхода полилиния и заменяется такими кластерами Б и С, что составная линия р1(^) и р2(^) совпадает с линией р(^) (рис. 3, б). Назначим параметр ге (0, 1), задающий точку разделения рг = р(г). Линии Безье трех сегментов представляют один и тот же полином в разных комбинациях параметра V.

р1(0 = р(/-0, р2(0 = р((1 - Т)г + г) Уге [0, 1]. (6)

Подставив модели сегментов (5) в (6), сведем уравнения связи векторных полиномов к порядкам кластеров В и С путем изменения порядка вектора базовых функций по формуле т„(0 = Е„+1.,„+1Т,„(0, в которой Е,/.у обозначает М /Л'-матрицу, заполненную нулями и тт(М, Щ единицами на главной диагонали:

У+1Ту(г^), СНЦТЦ(0 = иняЕи+1,ц+1Тц((1 - Т)г + г). (7)

u

u,

uA

а)

v+1

С

u

p(t)

S С2 . 2

u,

2/

b , c„

v 0

v—1

Ь2 P(t) ' i

u

ui bi b0

0

п=у=д

б)

u,

c b. b ^ u7

u n 0o-% 3 ° 2 u4 ciïf

4b2

2 N\ I 1 ^

v=4 2 Д;"1

^=3 Pi(t) \p2(0

Pr

n=5 c ^

b

c,

u

u

в)

Рис. 3. Разделение линии Безье: а - ручное, б, в - алгоритмическое

Составим невырожденную матрицу преобразования Тп(т) = Ъп(т^)Тп(1) из шкалы параметра I в шкалу масштабированного и смещенного параметра т = т1 +

" 1 " " 1 " " 1 0 0 . 0 "

mt+^ t s m 0 . 0

(mt+^ )2 = Dn (m,s ) t2 ^ Dn (m,s )= s 2 2ms m2 . 0 . (8)

(mt+^ )n tn _ sn Clnmsn-1 C2m2sn-2 . . mn

Переведем с помощью этой матрицы векторы базовых функций из произвольных параметрических шкал rte [0, r] и (1 - r)t + re [r, 1] в нормированную шкалу te [0, 1]

Tv(rt) = Dv(r, 0)Tv(t), Тц((1 - r)t + r) = D(1 - r, r)T^(t) и разрешим уравнения (7) относительно искомых векторов B и C для всех значений t:

B=UH „E„+1,v+1Dv(r,0)H-1, C=UH „Еи+1 +1D^(l- r,r)H-1.

Унд . (9)

Обоснуем выполненные в (7) преобразования векторов базисных функций в зависимости от соотношений порядков исходного сегмента р(^) и разделенных сегментов р1(^) и р2(0: • при выборе порядков V > п и д > п замены вектора Тп векторами

En+1,v+1Tv :

T

O

v-n,1

еп+1,д+1тд :

T

O

д-п,1

возможны всегда, но реальные степени разделенных полиномов все равно останутся равными п. При этом векторы полиномиальных коэффициентов новых сегментов

вн = [вн„ 1°1,у-и J, внц = [вн„ 101,ц-й ]

будут содержать справа V - п и, соответственно, д - п нулевых столбцов;

• при выборе порядков V < п или д < п (рис. 3, в) замены вектора Тп векторами

г т .

En+1,v+1 Tv "

T

O

n-v,1

Г T .

Еи+1,ц+1 Ад :

T

O

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

п-д,1

возможны лишь при условии, что реальная степень полинома р(^) не превышает значений V или д, а дефект степени ё > п - V или ё > п - д. Для этого вектор полиномиальных коэффициентов разделяемого сегмента должен содержать справа п - V или п - д нулевых столбцов:

внп = [вну ! °1,и_у J, внп = [вн„ ! °1,й-д J.

c

Неравенство v|bv - bv-i| ф ^jci - co| длин параллельных касательных векторов, хорошо заметное на рис. 3, б, означает, что полученные после разделения новые сегменты Безье обладают лишь нормированной гладкостью сопряжения друг с другом, а также с окружающими старыми сегментами. Моделирование выявило следующие зависимости векторов двух производных полиномов p1(í) и p2(t) в точке деления pr:

(1 - r)Vi(1) = rV2(0), (1 - r)2Ai(1) = r2A2(0). (10)

Отсюда видно, что только при выборе параметра разделения r = 0.5 сопряжение новых сегментов становится согласно (3) дважды гладким.

Пример 1. Разделить линию Безье, построенную на ХП с вершинами и0 =[10 0]т,

и =[22 6]т, и2 =[19 12]т, и3 =[11 15]т, и4 =[8 12]т и и5 =[20 0]т, на два сегмента с параметром разделения г = 0.6 (рис. 3, в).

Решение. Сформировав из характеристических вершин и по формуле (2) матрицы

U5 =

10 22 19 11 8 20 0 6 12 15 12 0

И,

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_ вычислим точку разделения линии Безье, имеющей формальную степень п = 5:

pr = UH5T5(r)=[13.6 11.52]г.

S=UH

5 -

D4 (0.6,0)=diag

D3 (0.4,0.6)=

Два правых нулевых столбца матрицы коэффициентов полинома р(^) = 8Т5(^)

"10 60 -150 100 0 0" 0 30 0 -30 0 0

означают дефект степени полинома ё = 2 и его реальную степень п - ё = 3.

Выбрав степени новых полиномов V = 4 > 3, д = 3 и сформировав по (8) матрицы 1 0 0 0 0 " 0 0.6 0 0 0 0 0 0.36 0 0 0 0 0 0.216 0 0 0 0 0 0.1296

вычислим по (9) матрицы вершин кластеров разделенных сегментов (матрицы Н4 и Н3 приведены в [1])

В=ттн Е П Г06 0^Н-! =[Ю 19 19 15.4 13.6 В=ЦН^^(°.6,°)Н4 = 0 4.5 9 11.88 11.52

" 13.6 16 22 10 11.52 12 6 0

и составим полиномиальные модели линий Безье с реальными степенями, равными трем:

10 0 0 0.6 0.4 0 0 0.36 0.48 0.16 0 0.216 0.432 0.288 0.064

C=UH 5E64D3 (0.4,0.6)h-1 =

Р1 (t )=BH 4T4 (t )=

10+36t -54t2 + 21.6t3

18t - 6.48t

3

, P2 (t )=CH3T3 (t )=

13.6 - 4.8t+4.8t2 + 6.4t3 11.52 -0.96t-8.64t2 -1.92t3

Анализируя пары векторов двух производных в точке сопряжения

V(1)=4(Ь4 -Ьэ)=[-7.2 -1.44] и У2(0)=3(с )=[-4.8 -0.96], А1 (1)=12(Ь4-2Ь3 + Ь2)=[21.6 -38.88] и А2(0)=6(с2 -2с1 + с0)=[9.6 -17.28],

убеждаемся в их коллинеарности, но отношении длин в г / (1 - г) = 1.5 и Г ■ / (1 - г)2 = 2.25 раз. Это подтверждает вывод, что при коэффициенте г Ф 0.5 кривая Безье разделяется на сегменты, обладающие лишь нормированной двойной гладкостью сопряжения.

Объединение линий Безье

Рассмотрим два способа и свойства объединения двух линий Безье р^) и р2(0, построенных по (5) на узловых кластерах В = ЬоЬ1 ... Ь и С = СоС1 ... сд порядков V и д, в одну линию р(^), включая выбор ее порядка п и вершин кластера и = и0и1 ... ип.

Простое соединение полилиний В и С по их общей вершине Ь = с0 в полилинию и = Ь0 ... Ь^ ... сд порядка п = V + д дает сегмент р(^) = иНпТп(0, не совпадающий с линиями р1(1) и р2(1;), так как точка ^ = К = с0 не является концевой в кластере и (см. рис. 3, а). Благодаря вхождению цепочек Ь0Ь1Ь2 и сд-2сд-1сд в объединение и = В и С условия сопряжения линии р(1;) с окружающими ее сегментами сохраняются.

По второму алгоритмическому способу кластеры В и С заменяются такой характеристической полилинией и, что построенный на ней сегмент Безье р(1;) точно совпадает с составной линией р1(1) и р2(1;) (см. рис. 3, б, в). По сути эта задача обратна рассмотренной выше задаче разделения кластера и входит в круг задач редактирования составных линий Безье.

Если при разделении кластера параметр г задавался произвольно, то в обратной задаче его нужно каким-то образом вычислить. Поскольку линии р1(1) и р2(1;) сопряжены гладко, пусть и нормированно, то в точке К = с0 векторы направлений У1(1) = v(bV - Ь^) и У2(0) = д(с1 - с0) коллинеарны. Их длины связаны между собой первым в (10) соотношением, из которого и находится параметр разделения:

__1_

1+д| С! - е0|/V (11)

При равенстве векторов У1(1) = У2(0) в (11) будет получено г = 0.5. Другие значения г означают не полную, а лишь нормированную гладкость сопряжения линий р1(^) и р2(0, при которой в (3) совпадают лишь направления векторов производных.

Замена двух сегментов Безье одним возможна лишь тогда, когда все три линии представляют один и тот же полином. Именно из этих свойств (6) и получены зависимости (9) между тремя кластерами и, В и С. Здесь же нужно проверить способность кластеров В и С быть основами разных частей единого сегмента р1(^) и р2(0 без привлечения неизвестного пока кластера и. Приведя соотношения (7) к единому порядку п

ВНЕ+^Тпф = иНпБп(г, 0)Тп(0, СНдЕд+1,п+1Тп(0 = иН^О - г, г)Тп(0, (12) получим благодаря невырожденности матрицы (8) тест возможности объединения сегментов Безье р1(^) и р2(^) в одну линию р(^):

1Б-!(г,0)=СИдЕд^Б-1 (1-г,г).

В^Е+1,и+1Б

Из тех же соотношений находится искомый вектор вершин объединяющего кластера:

и=BИvEv+l/г+lD-1(г,0)И-1.

(13)

(14)

и«-1

I

с ✓

д

и

п

// \ Ч р(0 /?Ь2

«ь1

I

\

«I I 1 с^ — -

Ь

\

и

0 и

и2

с Ь

с .

v=4

д=3

п=3

Ь0С^

и0

0Ь4 Ь

о. 3 \

ч Ь

? 2

I - •

Ж

Р2(^) с3

и3

и,

с

а) б)

Рис. 4. Объединение линий Безье

Если полилинии В и С не удовлетворяют условию (13), то в (14) будет получен кластер линии Безье, не проходящей по исходным линиям р^/) и р2(/), как показано на рис. 4, а. В расчетах с обратной матрицей (8) можно использовать ее свойство

БТ (т-1,-.™-1).

Сделанные в (12) подстановки Ту(0 = ЕУ+1,И+1Т„(^) и Тд(/) = Ец+1,„+1Т„(^) возможны всегда при выборе порядка объединенного сегмента п > шах(у, д}. Наименьшее значение п, при котором задача объединения имеет точное решение (14) при условии (13), ограничено наибольшей реальной степенью полиномов р1(^) и р2(/).

Пример 2. Объединить по возможности сегменты Безье р1(1) и р2(1;) порядков V = 4 и д = 3 (см. рис. 3,в) в одну линию минимального порядка.

Решение. В примере 1 показано, что реальные степени дважды гладко сопряженных сегментов р1(^) и р2(/) равны трем. Если возможность объединения этих сегментов существует, то минимальная степень полинома р(/) также будет составлять п = 3.

Используя найденное там же соотношение длин касательных векторов в точке сопряжения |У1(1)| / |У2(0)| = 1.5, вычислим по (11) параметр деления г = 1 / (1 + 2/3) = 0.6 и проведем тест (13) с обратными матрицами Б-1 (3/5,0)=Б3(5/3,0) и Б-1(2/5,3/5)=Б3(5/3,-1):

ВН4Е54Б3 (5/3,0)=СН3Б3 (У3,-1)=[^0 60 Т 100"

Таким образом, объединение сегментов возможно.

Вычислив по (14) матрицу вершин объединяющего кластера, построим на нем параметрическую модель линии Безье третьего порядка (рис. 4, б):

"10 30 0 20" / ч_ттжт „ /

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

0 10 20 0 , р(/)=ин3X3^ 30/-30Г

и=ВН4Е54Б3 (53,0)н-1 =

10+60/ -150/2 +100/3

3

Разделение поверхности Безье

Распространим линейный алгоритм (6) ^ (9) на задачу разделения поверхности Безье

р(*,т)=Тит(0н£ШмТм(т) □/, те[0, 1], (15)

построенной на ХПС и = (игу} порядков п х т, на четыре сегмента р11(/,т) ^ р22(/,т) с моделями (4) порядков п1 х т1 ^ п2 х т2. Целью разделения узловой сети и на кластеры и11 ^ и22 является увеличение числа и уменьшение порядков сегментов, что, в конечном итоге, повышает гибкость построенной на них составной поверхности.

Назначим параметры г, ре (0, 1) и точку разделения рф = р(г,р), в которой новые кластеры и сегменты соединяются углами. Деление надвое каждого параметрического интервала /, те [0, 1] дает сегменты (4), представляющие один и тот же полином в разных комбинациях параметров {/,т} и совместно покрывающие исходный сегмент р(/,т):

ри(/,т) = р(г^ РтХ р12(/,т) = рС^ (1 - р)т + рХ

(16)

р21(/,т) = р((1 - г)/ + г, рт), р22(/,т) = р((1 - г)/ + г, (1 - р)т + р).

Подставив сюда модели сегментов (4) и (15), получим систему четырех уравнений

' хт (/)нт ииН„ Т (т)=XI (г/)Ещ +1,И+1НПинтЕт+1,т +1Тт (рт),

(/)НТи12Нт2Тт2 (т)= Т^ (г/)Ет1 +1,т+1НТиНтЕт+1,т2 +1Тт2 ((l-р)т+р),

ТИТ2 (/)Н^2 и21Нт Тт1 (т)= Т* ((1-г)/ + Г)Е„2 +1П+1НПиНтЕт+2т1 +1^ И,

Т, (/)Н1 и22Нт Тт (т)= Т* ((1-Г)/ + Г)Е„ ^Н^тЕтЦ т Л ((1-р)Т+р).

Наконец, четырежды применив преобразование (8), получим формулы вычисления матриц узловых кластеров разделенных сегментов:

Uii =(нпЕИ+1,И1 +iD (r,0)НИ;) ü(hotEm+i;mi +iDm! (p,0)hJ1 )i

Dm2 (i"PiP)Hmi2 )i

Ui2 =(HnEn+i,ni +iDni (r,0)H- ) u(hmEm+i,m2 +i~m2 ^ Р,рн^2 U2i =(HnEn+i,n2 +iDn2 (i-r,r)Hn2 ) и(нтEm+i,mi +iDOTi (Р,0)Нm\ )i U22 =(HnEn+in2 +iDn2 (i-г,г)Hl2 )тu(hmEm+i,m2^ (i-PiP^ )

(17)

При разделении кластера U лишь по одному параметрическому направлению его замещают не четыре, а только два новых кластера:

/: Uii =(HnEn+i,ni +iDni (r,0)H-i )тU, Ü2i = ^+^2 +iDn2 (i-r,r)H-2 )т U ,

i: Un = U(HmEm+i,mi +iD

Dmi (P,0)Hmi ), Ui2 = U(HmEm+i,m2+iDm2 (i-PiP^ ).

Выбор порядков новых сегментов щ и т определяется структурой матриц полиномиальных коэффициентов 8=И^ПНт и Б- = И^.Ц-Н :

• значения п/ > п и ту > т возможны всегда, но реальные степени новых сегментов все равно будут равны п и т. При этом их матрицы Б/у будут содержать снизу щ - п нулевых строк и/или справа ту - т нулевых столбцов:

S

O,

i -n,mj +i

SO

S j Oni+i,mj-m

S

' On +i,m j-m .L_.-----j---

O 'O

nj-nmj +i 1 nj-nrnj-m

• выбор п/ < п или ту < т обусловлен наличием у полинома р(^,т) дефектов степеней > п - п/ или 5у > т - ту. Для этого матрица Б полиномиальных коэффициентов разделяемого сегмента должна содержать снизу ё нулевых строк и/или справа 5 нулевых столбцов:

S;,

O

d ,m j +i

[Sj- °+i,g]

!o

nj +i,mj-m

5

Od ,m,+n Od ,5

Как и в (10), двойная гладкость сопряжения новых сегментов друг с другом получится только при г = р = 0.5 — делении сегмента средне-параметрической точкой.

Испытаем разработанный алгоритм на разделении поверхности Безье из [1, рис. 3], построенной на характеристической сети узловой размерности 10 х 10 (рис. 6, а). Необходимость сильного удаления околоцентральных вершин ХПС подтверждает свойство их слабого влияния на поверхность Безье при высоких порядках ее модели (15). Подобрав параметры г = 0.4 и р = 0.5, при которых точка деления ргр находится на острие «носа», получим по формулам (17) четыре кластера Бц ^ и22, очень плотно охватывающих составную поверхность (рис. 6, б) в отличие от «рыхлой» исходной сети.

U

Uii

. U12

U,

22

Рис. 6. Разделение поверхности Безье

<

Теперь, с превращением односегментной поверхности в составную, появились более мощные возможности ее редактирования. Одна из них - перемещение точки деления и окружающих ее восьми узловых точек - показана на рис. 6, в, и такой остроты «носа» нельзя достичь без разделения кластера.

U =

Пример 3. Разделить на четыре сегмента минимальных степеней поверхность Безье (рис. 7, а), у которой вершины ХПС порядков n = m = 3 составляют матрицу

[8 0 0] [8 0 -12] [-8 0 -12] [-8 0 0] " [6 - 4 0] [6 - 4 - 9] [- 6 - 4 - 9] [- 6 - 4 0] [4 - 4 0] [4 - 4 - 6] [- 4 - 4 - 6] [- 4 - 4 0] [2 0 0] [2 0 - 3] [- 2 0 - 3] [-2 0 0]

Решение. Для определения минимально возможных степеней разделенных сегментов вычислим матрицу полиномиальных коэффициентов заданной поверхности:

"[8 0 0] [0 0 -36] [-48 0 36] [32 0 0] " [- 6 -12 0] [0 0 27] [36 0 -27] [-24 0 0] [0 12 0] [0 0 0] [0 0 0] [0 0 0] [0 00] [00 0] [0 00] [00 0]

В ней есть одна нижняя нулевая строка, значит, в /-направлении поверхность является параболической с дефектом степени d = 1, в т-направлении - кубической, а минимальные степени новых сегментов равны ni = n2 = n - d = 2 и mi = m2 = 3.

S=Щ UH 3

u v^

u02

u

03

u

13

01

U12

U11

u21 * U11

11

U20 .

21

10

а) б)

Рис. 7. Пример разделения поверхности Безье

Задав параметры разделения г = р = 0.5 и вычислив по (17) матрицы кластеров Цл ^ и22, убеждаемся, что построенные на них по (4) поверхности Безье точно совпадают с исходной поверхностью (рис. 7, б).

Объединение поверхностей Безье

Цель данной задачи - объединение кластеров в один для упрощения структуры составной поверхности без изменения ее формы путем уменьшения числа сегментов и, возможно, вершин ХПС. Она, по сути, обратна к задаче разделения кластера. Следует, однако, понимать, что объединение сегментов Безье с сохранением формы поверхности возможно при жестких ограничениях на расположение узловых вершин объединяемых кластеров.

По аналогии с (11) ^ (14) составим алгоритм замены четырех матрично организованных кластеров Ц/ с порядками пг х Ш/ при г,/е{1, 2} одним кластером и порядка п х т, поверхность которого р(/,т) совпадает с объединением поверхностей рг/(/,т). Используем для вычисления параметров разделения г и р точку ргр = р11(1,1) = р12(1,0) = р21(0,1) = р22(0,0) и четыре окружающие ее граничные вершины кластеров

.11

.12

v0 " u«! —1,m1 " unx-1,0 ,

21

22

v1 - u1,m - u1,o:

r -

1+-

«2 Prp — v1

«1 Prp — v0

V—1

, p-

1+-

11 21

- u щ,т\—1 - u0,m1—1, w1

> 1

m2 Prp — w1

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

m1 Prp — w 0 J

.12 . '«1,1"

22 . *0,1 .

(18)

Возможность алгоритмического объединения четырех сегментов сильно ограничена таким расположением вершин в кластерах Цп ^ Ц22, что построенные на них поверхности Безье рг/(/,т) представляют единый полином от разных комбинаций параметров I, те[0, 1]. Приведя уравнения (16) к порядкам п и т, получим соотношения

=К (г,0)ип ин тът (р,о),

= (г,0)НПинтБт (1-р,р),

= К (1-Г,Г )НП ин тБт (р,0),

= БП (1-Г,Г )н П ин т Бт (1-р,р).

Отсюда вытекают, во-первых, тест возможности объединения сегментов р11(/,т) ^ р22(/,т) в один сегмент р (/,т) в виде системы трех матричных уравнений

Г trT TT П lf

Еи+1,и! +1H« U 11Hmj +1,m+1 ' Еи+1,и! +1H«U12 Hm2 ЕИ2 +1,m+1 ■ Еи+1,и2 +1H «2 U 21Hmx Emx +1,m+1" Еи+1,и2 +1H «2 U 22 Hm2 Em2 +1,m+1 "

U, , Hm, „^Dm1 (p,0)-U12Hm Em +1,m+1Dm1 (1 — p,p)

11Hmj Emj +1,m+1Dm

0—1 (r

Dm1 (p,0)-U22 Hm Em

12 Hm2 Em2 +1,m+1Dm

U^E« +1,«+1D-1 (r,0)-U T1H„2 E „2 ^D—1 (1—r,r),

' 22Hm2 Em2 +1,m+1Dm '

(19)

U H E D

U 21 Hmj Emj +1,m+1 Dm

1Б~т(1 -р,р),

а во-вторых, формула вычисления матрицы вершин объединяющего кластера Ц по матрице лишь одного узлового кластера, например, Ц11:

и=(нп1Еп1+1п+1Б-1 (г,0)н- )т ип (нт1Ет1+1,т+1Бт1 (р^1). (20)

Для объединения сегментов лишь по одному параметрическому направлению (/ либо т) в (18) ^ (20) берутся соответствующие параметр разделения (г либо р) и пара тестируемых кластеров ({Ц11, Ц21} либо {Ц11, Ц12}).

При выводе формулы (20) подстановки Тп. )= Епг +1,п+1Тп ) и Тт. (т)=Ет] +1,т+1Тт (т)

равносильны всегда, если порядки искомого сегмента п > тах{п1, п2} и т > тах{ть т2}. Наименьшие значения п и т, при которых задача объединения при условиях (19) имеет точное решение (20), ограничено наибольшими реальными степенями полиномов рг/(/,т).

Испытаем разработанный алгоритм на объединение четырех сегментов Безье с кластерами Ц11 ^ Ц22 порядков п1 = п2 = 2 и т1 = т2 = 3 (см. рис. 7, б) в поверхность минимальных степеней п = 2 и т = 3, определяемых максимальными степенями объединяемых сегментов в соответствующих параметрических направлениях (рис. 8).

0

<

22 11 21 По точке ргр = и00 и четырем граничным вершинам кластеров V0 = и 13, V 1 = и 13

11 12

"0 = и32 и = и31 находим по (18) параметры разделения г = р = 0.5. Убедившись в выполнении теста (19), находим по (20) матрицу вершин ХПС

" [8 0 0] [8 0 -12] [- 8 0 -12] [-8 0 0] Ц = [5 -6 0] [5 -6 -7.5] [-5 -6 -7.5] [-5 -6 0] [2 0 0] [2 0 - 3] [- 2 0 - 3] [-2 0 0]

Сравнение с узловой матрицей той же поверхности из примера 3 (см. рис. 7, а) свидетельствует об избыточности модели со степенью п = 3, которая имеет реальное значение п = 2.

Выводы

В результате предпринятых усилий разработаны матричные алгоритмы разделения и объединения линий и поверхностей Безье. Получены условия, при которых становятся возможными как эти операции редактирования составных объектов Безье, так и получение минимальных порядков кластеров данных графических объектов.

Библиографический список

1. Никулин, Е.А. Новый метод изменения порядков кривых и поверхностей Безье // Труды Ни-жегород. гос. техн. ун-та им. Р.Е. Алексеева; НГТУ. - Н. Новгород. 2011. № 1 (86). С. 70-77.

2. Компьютерная геометрия: учеб. пособие для студ. вузов / Н.Н. Голованов [и др.]. - М.: Издательский центр «Академия», 2006. - 512 с.

3. Роджерс, Д. Математические основы машинной графики / Д. Роджерс, Дж. Адамс. - М.: Мир, 2001. - 604 с.

Дата поступления в редакцию 06. 04.2012

E.A. Nikulin

MATRIX BASED METHODS OF COMPOSITE BEZIER OBJECTS RECLASTERIZATION

Nizhny Novgorod State Technical University n.a. R.Y. Alekseev

Subject: modification algorithms for node networks which are used to create compound lines and Bezier surfaces, allowing to randomly change cluster count and dimensions keeping segment shape unchanged, are developed. Purpose: on the one hand it is to increase a modification flexibility of compound Bezier objects while increasing clu s-ter count and dimensions, on the other hand it is to simplify as much as possible their models due to reducing cluster count and dimensions.

Methodology: proposed reclusterization algorithms use a matrix based approach which provides a single short formula to recalculate clusters increasing their size as well as reducing it.

Originality/value: methods developed in the present study allow to increase cluster dimensions to any value and decrease them to limiting values keeping the Bezier object shape intact.

Findings: the article finds unique matrix-based algorithms for node network restructurization of compound lines and Bezier objects, which increases their utilization flexibility.

Key words: curve, surface, Bezier, polynom, segment, conjugation.

i Надоели баннеры? Вы всегда можете отключить рекламу.