Top Banner
Лекция 3. Криви на Безие Геометричен дизайн доц. д-р Марта Теофилова специалност Софтуерни технологии и дизайн, II курс, задочно обучение Геометричен дизайн Лекция 3. Криви на Безие
62

Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

May 30, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Лекция 3. Криви на Безие

Геометричен дизайн

доц. д-р Марта Теофилова

специалност Софтуерни технологии и дизайн, II курс,задочно обучение

Геометричен дизайнЛекция 3. Криви на Безие

Page 2: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Параметрични криви в компютърния дизайн

Параметричните криви, които се използват в компютърния дизайн,са предимно полиномни криви, т.е. координатните функции на радиус-вектора на произволна точна от кривата са полиномни функции наедна реална променлива (параметър).

Полиномите от първа степен P (u) = au+b (a 6= 0) представляватправи линии, което ограничава тяхната употреба.Полиномите от втора степен P (u) = au2 + bu + c (a 6= 0) сапараболи.Полиномите от трета степен (кубични полиноми) P (u) = au3 +bu2 + cu + d (a 6= 0) позволяват изчертаването на по-сложниформи и могат да бъдат пространствени криви (но и те иматсвоите ограничения – могат да имат най-много една примка, единвръх или две инфлексни точки).Формата на графиките на полиномите от степен по-висока от трие по-трудна за контролиране. Те имат повече коефициенти, коетоизисква повече входни данни за определянето им.

Геометричен дизайнЛекция 3. Криви на Безие

Page 3: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Криви на Безие – исторически бележки

През 60-те години на миналия век френските математици и ди-зайнери Пол дьо Кастелжо (Ситроен) и Пиер Безие (Рено), не-зависимо един от друг, достигнали до идеята за използване напараметрични криви, зададени чрез контролни полигони от точ-ки.Подобни идеи имало още през 20-те години в класическата ди-ференциална геометрия, но по онова време не намерили прило-жение.Сега кубичните криви на Безие са стандартен инструмент в ре-дица приложения за графичен дизайн и предпечатна подготовка:PhotoShop, InDesign, GIMP, Scribus и др.Приложение за дизайн на шрифтове: квадратни криви на Безие заизчертаване на контурите на символите в True Type шрифтоветеи кубични в Post Script Type 1 и TeX шрифтовете на Доналд Кнут.

Геометричен дизайнЛекция 3. Криви на Безие

Page 4: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Дефиниране на крива на Безие

Кривите на Безие представляват полиномни параметрични криви,т.е. координатните функции на радиус-вектора на произволна точкаот кривата са полиноми на един реален аргумент.

За задаване на крива на Безие от степен n са необходими:n + 1 на брой контролни точки P0, P1, ..., Pn, където n ∈ N. Припоследователното си свързване тези точки образуват контролнияполигон на кривата. Отсечките PiPi+1 (i = 0, 1, ..., n − 1), свър-зващи две последователни контролни точки, определят т. нар.контролни рамене.полиномите на Сергей Бернщайн (основни функции на Безие),означени с Bn,i(u). Това са полиноми на една реална променливаu, определени чрез

Bn,i(u) =n!

i!(n− i)!ui(1− u)n−i, i = 0, 1, ..., n. (1)

Геометричен дизайнЛекция 3. Криви на Безие

Page 5: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Полиномите на Бернщайн

За всяко естествено n, Bn,i(u) са n+1 на брой полинома на u отn-та степен. Освен това по определение u ∈ [0, 1].Полиномите на Бернщайн от първа степен (при n = 1) са двелинейни функции на u:

B1,0(u) = 1− u, B1,1(u) = u. (2)

Геометричен дизайнЛекция 3. Криви на Безие

Page 6: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Полиномите на Бернщайн от втора степен (при n = 2):

B2,0(u) = (1− u)2, B2,1(u) = 2u(1− u), B2,2(u) = u2. (3)

Геометричен дизайнЛекция 3. Криви на Безие

Page 7: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Полиномите на Бернщайн от трета степен (при n = 3):

B3,0(u) = (1− u)3, B3,1(u) = 3u(1− u)2,

B3,2(u) = 3u2(1− u), B3,3(u) = u3.(4)

Геометричен дизайнЛекция 3. Криви на Безие

Page 8: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Лесно се установява,че сумата на трите полинома на Бернщайн от2-ра степен е 1. Същото е изпълнено и за четирите полинома от 3-тастепен. Това свойство ("разделяне на единицата") важи за полиноми-те на Бернщайн от произволна n-та степен, т.е.

n∑i=0

Bn,i(u) = (u + (1− u))n = 1. (5)

Тъй като u ∈ [0, 1], то е в сила 0 ≤ Bn,i(u) ≤ 1.

Геометричен дизайнЛекция 3. Криви на Безие

Page 9: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Тогава кривата на Безие C(u) от n-та степен,определена от кон-тролните точки P0, P1, ..., Pn, има вида

C(u) =n∑

i=0

Bn,i(u)Pi, (6)

т.е. функциите на Безие са коефициенти пред контролните точки.Горното уравнение се нарича уравнение на Безие на кривата C(u)(или още уравнение в Бернщайн форма).Отбелязваме, че параметърът u на кривата се изменя в затворе-ния интервал [0, 1].Тъй като 0 ≤ Bn,i(u) ≤ 1 и сумата на всички Bn,i(u) за про-изволно n е единица, то за кривата на Безие се казва още, че епретеглена сума на контролните си точки.Полиномите на Бернщайн са линейно независими помежду си итъй като са n + 1 на брой, образуват база на Rn[u] – векторнотопространство на полиномите на u с реални коефициенти от степенпо-малка или равна на n.

Геометричен дизайнЛекция 3. Криви на Безие

Page 10: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Крива на Безие от 2-ра степен се определя от три контролниточки P0, P1, P2. Кривите от втора степен представляват дъги отпараболи. Ето пример на равнинна крива на Безие от 2-ра степен,зададена чрез контролните точки P0(2, 3), P1(−3, 1), P2(1, 0).

Геометричен дизайнЛекция 3. Криви на Безие

Page 11: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Крива на Безие от 3-та степен се определя от четири контролниточки P0, P1, P2, P3. Ето пример на равнинна крива на Безие от3-та степен, зададена чрез контролните точки P0(4, 2), P1(0, 4),P2(−4, 1), P3(−1, 5).

Геометричен дизайнЛекция 3. Криви на Безие

Page 12: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Ако първата и последната точка от контролния полигон на кри-ва на Безие съвпадат, кривата се нарича затворена. Пример назатворена крива на Безие от 5-та степен, дефинирана чрез конт-ролните точки P0(0, 0), P1(−2,−2), P2(−2, 2), P3(2, 2), P4(2,−2),P5(0, 0), за която P0 = P5.

Геометричен дизайнЛекция 3. Криви на Безие

Page 13: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Свойства на кривите на Безие

Степента на кривата на Безие се определя от степента на поли-номите на Берщайн. Крива от n-та степен се задава чрез n + 1полинома на Бернщайн от n-та степен и n + 1 контролни точки.Всяка крива на Безие минава през първата и последната си кон-тролна точка, съответно P0 и Pn. Двете крайни точки от конт-ролния полигон на кривата се получават за стойности на нейнияпараметър в краищата на дефиниционния му интервал [0, 1], т.е.

C(0) = P0, C(1) = Pn. (7)

За u = 0 единствено Bn,0(u) приема ненулева стойност, която еBn,0(0) = (1 − 0)n = 1. При u = 1 единствено Bn,n(u) приеманенулева стойност, Bn,n(1) = 1n = 1.Кривите на Безие се допират до първото (P0P1) и последното сиконтролно рамо (Pn−1Pn).

Геометричен дизайнЛекция 3. Криви на Безие

Page 14: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Кривата не изменя формата си при промяна на координатнатасистема (афинна инвариантност).Никоя права не пресича равнинна крива на Безие повече пътиотколкото пресича контролния и полигон (променливо намалява-не).Поради свойството "разделяне на единицата" и неотрицателност-та на полиномите на Бернщайн

n∑i=0

Bn,i(u) = 1, 0 ≤ Bn,i(u) ≤ 1, u ∈ [0, 1],

всяка крива на Безие лежи изцяло в изпъкналата обвивка на кон-тролните си точки. Това е най-малкият изпълкнал многоъгълник(т.е. с ъгли < 180◦), който съдържа във вътрешността си иливърху контурите си всички контролни точки.Изпъкналата обвивка на две точки е отсечката, която ги съеди-нява. Изпъкналата обвивка на три точки, нележащи върху еднаправа, е триъгълникът с върхове тези точки. На четири точки –изпъкналият четириъгълник, образуван от тях и т.н.

Геометричен дизайнЛекция 3. Криви на Безие

Page 15: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Пример на крива на Безие от 5-та степен (ляво) и изпъкналатаобвивка на контролните и точки (дясно).

Геометричен дизайнЛекция 3. Криви на Безие

Page 16: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Друг пример на крива на Безие от 3-та степен (ляво) и изпъкналатаобвивка на контролните и точки (дясно).

Геометричен дизайнЛекция 3. Криви на Безие

Page 17: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Матрична форма на уравнението на крива на Безие

Уравнението

C(u) =n∑

i=0

Bn,i(u)Pi

на кривата на Безие C от n-та степен може да се запише като произ-ведение на три матрици.

Например, първата от матриците съдържа естествената база на век-торното пространство Rn[u] на полиномите на u с реални коефициен-ти от степен, ненадвишаваща n, т.е. полиномите un, ..., u, 1. Вторатаматрица съдържа числените коефициенти на полиномите на Безие,т.е. матрицата на прехода от базата e = {un, ..., u, 1} към базата отполиномите на Бернщайн {Bn,i(u)}, i = 0, 1, ..., n на Rn[u]. Третатаматрица съдържа контролните точки Pi на кривата.

Геометричен дизайнЛекция 3. Криви на Безие

Page 18: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Матрична форма на уравнението на крива на Безие

Тогава матричният запис на уравнението на крива на Безие C(u)от втора степен има следния вид

C(u) =(

u2 u 1) 1 −2 1

−2 2 01 0 0

P0

P1

P2

. (8)

Аналогично, за крива на Безие от трета степен имаме

C(u) =(

u3 u2 u 1)

−1 3 −3 13 −6 3 0

−3 3 0 01 0 0 0

P0

P1

P2

P3

. (9)

Геометричен дизайнЛекция 3. Криви на Безие

Page 19: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Параметрична форма на крива на Безие

Ако уравнението на кривата на Безие

C(u) =n∑

i=0

Bn,i(u)Pi (10)

се разпише за всяка от координатите на контролните точки Pi, ще сеполучи параметричното уравнение на кривата.

Нека е дадена равнинна крива на Безие C(u) от 2-ра степен, оп-ределена от контролния полигон P0(−1, 0), P1(0, 2), P2(2, 0). Тогава,съгласно горната формула, нейното уравнение има вида

C(u) = B2,0(u)P0 + B2,1(u)P1 + B2,2(u)P2

= (1− u)2(−10

)+ 2u(1− u)

(02

)+ u2

(20

).

(11)

Геометричен дизайнЛекция 3. Криви на Безие

Page 20: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Параметрична форма на крива на Безие

От първите координати на контролните точки получаваме

x(u) = −1.(1− u)2 + 2.u2 = u2 + 2u− 1. (12)

От вторите координати намираме

y(u) = 2.2u(1− u) = 4u− 4u2. (13)

Тогава параметричното уравнение на тази крива е

C(u) = (x(u), y(u)) = (u2 + 2u− 1, 4u− 4u2). (14)

Чрез заместване на параметъра u с конкретна стойност в [0, 1] могатда бъдат получени координатите на точката от кривата, съответст-ваща на тази стойност на u. Проверете, че C(0) = (−1, 0) = P0 иC(1) = (2, 0) = P2, а също и че C(0.5) = (0.25; 1).

Геометричен дизайнЛекция 3. Криви на Безие

Page 21: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Параметрична форма на крива на Безие

Червената точка върху кривата е C(0.5) = (0.25; 1).

Геометричен дизайнЛекция 3. Криви на Безие

Page 22: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Алгоритъм на дьо Кастелжо

Нека C(u), u ∈ [0, 1], е крива на Безие от n-та степен, опреде-лена от контролните точки P0, P1, . . . , Pn. За да намерим точкаот кривата, съответна на стойност на параметъра u = u0, т. е.точката C(u0), използваме алгоритъма на дьо Кастелжо.При работата с този алгоритъм, вместо да бъде използвана пара-метричната форма на кривата, се работи само с нейния контроленполигон.Алгоритъмът се базира на следната идея. Ако AB е отсечка итърсим точка M върху нея, разделяща я в отношение AM :MB = u0 : 1− u0, координатите на тази точка се изразяват катоследната линейна комбинация от координатите на двата края наотсечката

M = (1− u0)A + u0B.

Геометричен дизайнЛекция 3. Криви на Безие

Page 23: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Намирането на C(u0) чрез алгоритъма на дьо Кастелжо се състоив следното:Подреждаме контролните точки на кривата вертикално една наддруга, започвайки от P0 и стигайки до Pn, както е показано внай-лявата колона на схемата на следващия слайд.В първия етап на алгоритъма намираме точка P1i върху всякорамо (отсечка) PiPi+1 (i = 0, 1, . . . , n−1) на контролния полигон,която го дели в отношение u0 : (1− u0). Тази точка се получавапо формулата

P1i = (1− u0)Pi + u0Pi+1.

Използваме схемата от следващия слайд.

Геометричен дизайнЛекция 3. Криви на Безие

Page 24: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Аритметичните действия в схемата са символично изобразени по след-ния начин:

↘ .(1− u0)+↗ .u0

(15)

Геометричен дизайнЛекция 3. Криви на Безие

Page 25: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

По този начин получаваме точките P10, P11, . . . , P1,n−1 от след-ващата колона (втората отляво надясно).Процедурата се повтаря с получаване на точките P2i (i = 0, 1, . . . ,n− 2) от третата колона, които лежат съответно върху отсечкитеP1iP1,i+1. Използват се отново действията, означени с (15).След това се пресмятат координатите на точките от четвъртатаколона и така нататък до получаването на последната точка Pn0.Съгласно метода, тази точка съвпада с C(u0).Построявайки начупените линии по всяка колона на схемата, на-мираме т. нар. мрежа на дьо Кастелжо, която постепенно приб-лижава кривата, докато достигне точката C(u0).

Геометричен дизайнЛекция 3. Криви на Безие

Page 26: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Нека е дадена крива на Безие C(u) от 3-та степен, определеначрез следните контролни точки: P0(−8, 0), P1(−4, 4), P2(4, 4), P3(8, 0).Чрез алгоритъма на дьо Кастелжо намерете точка от кривата, съот-ветстваща на u0 = 0.25.

Геометричен дизайнЛекция 3. Криви на Безие

Page 27: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Мрежата на дьо Кастелжо. Точката P30 е точката от кривата, съ-ответстваща на стойност на параметъра u = 0.25.

Геометричен дизайнЛекция 3. Криви на Безие

Page 28: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Подразделяне на крива на Безие

След като е намерена точката C(u0) чрез алгоритъма на дьоКастелжо, кривата може да бъде подразделена на две дъги приu = u0.При подразделянето дадената крива се представя като обедине-ние на две криви на Безие от същата степен като дадената криваC(u), съединени в точката C(u0).Дефинирането на двете дъги използва резултатите от алгоритъмана Кастелжо, дадени в схемата на алгоритъма.Първата дъга (сегмент) C1(u) се определя при u ∈ [0;u0] от конт-ролните точки P0, P10, P20, . . . , Pn0 (разположени отляво надяснопо горния ръб на схемата), а втората дъга (сегмент) C2(u) е де-финирана при u ∈ [u0; 1] и има контролен полигон Pn0, Pn−1,1,Pn−2,2, . . . , Pn (намиращ се по долния ръб на схемата, отдясноналяво).

Геометричен дизайнЛекция 3. Криви на Безие

Page 29: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

C1(u), u ∈ [0;u0], се определя от контролните точки P0, P10, P20,. . . , Pn0, оградени от червения правоъгълник на схемата.

C2(u), u ∈ [u0; 1], се определя от контролните точки Pn0, Pn−1,1,Pn−2,2, . . . , Pn, оградени от синия правоъгълник.

Геометричен дизайнЛекция 3. Криви на Безие

Page 30: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

За примера с кривата на Безие от 3-та степен, определена от конт-ролните точки P0(−8, 0), P1(−4, 4), P2(4, 4), P3(8, 0), намерихме точ-ката P30 = C(0.25). Тогава тази крива се подразделя на следните дведъги при u = 0.25:

C1(u), u ∈ [0; 0.25], определена от контролните точки P0(−8; 0),P10(−7; 1), P20(−5.75; 1.75), P30(−4.375; 2.25);

C2(u), u ∈ [0.25; 1], определена от контролните точки P30(−4.375; 2.25),P21(−0.25; 3.75), P12(5; 3), P3(8; 0).

Отбелязваме, че и двете дъги са криви на Безие от 3-та степен(каквато е и изходната крива).

Геометричен дизайнЛекция 3. Криви на Безие

Page 31: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Увеличаване на степен на крива на Безие

Увеличаването на степента на крива на Безие не променя ней-ната форма, а изменя само формата на контролния и полигон,доближавайки го до кривата.На всяка стъпка степента може да бъде увеличена с единица.Нека е дадена крива на Безие C от степен n, дефинирана чрезконтролните точки P0, P1, . . . , Pn.Новите контролни точки Qi (i = 0, 1, . . . , n + 1), които задаватC като крива на Безие от степен n + 1, се получават по следнияначин:

Q0 = P0, Qn+1 = Pn,

Qi = in+1Pi−1 +

(1− i

n+1

)Pi, i = 1, 2, . . . , n.

(16)

Геометричен дизайнЛекция 3. Криви на Безие

Page 32: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Нека е дадена крива на Безие C(u) от 2-ра степен, определена отконтролните точки P0(−3, 0), P1(0, 3), P2(3, 0).

Увеличавайки степента на C с 1, ще зададем същата крива катокрива от 3-та степен чрез контролните точки Qi (i = 0, 1, 2, 3):

Q0 = P0 = (−3, 0), Q3 = P2 = (3, 0),

Q1 = 13P0 + 2

3P1 = 13 (−3, 0) + 2

3 (0, 3) = (−1, 2),

Q2 = 23P1 + 1

3P2 = 23 (0, 3) + 1

3 (3, 0) = (1, 2).

Геометричен дизайнЛекция 3. Криви на Безие

Page 33: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Използвайки контролния полигон Qi, задаващ C като крива на Бе-зие от 3-та степен, нека увеличим степента на тази крива още единпът, т.е. да я зададем като крива от 4-та степен. Новият и контроленполигон Ri (i = 0, 1, ..., 4) ще се определя от

R0 = Q0 = (−3, 0), R4 = Q3 = (3, 0),

R1 = 14Q0 + 3

4Q1 = 14 (−3, 0) + 3

4 (−1, 2) = (−1.5; 1.5),

R2 = 12Q1 + 1

2Q2 = 12 (−1, 2) + 1

2 (1, 2) = (0, 2),

R3 = 34Q2 + 1

4Q3 = 34 (1, 2) + 1

4 (3, 0) = (1.5; 1.5).

Геометричен дизайнЛекция 3. Криви на Безие

Page 34: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Преместване на контролна точка

Нека кривата на Безие C(u) от n-та степен е определена от контрол-ните точки P0, P1, ..., Pn. Ако контролната точка Pj бъде преместенав ново положение P ∗

j , координатите на старото и новото положениена тази контролна точка са свързани чрез

P ∗j = Pj + ~v, (17)

където ~v е векторът на преместването. Съгласно горното равенствотози вектор се изразява чрез ~v = P ∗

j − Pj .Кривата на Безие C∗(u), получена от C(u) след преместването

Pj → P ∗j , се определя от

C∗(u) = C(u) + Bn,j(u)~v. (18)

Геометричен дизайнЛекция 3. Криви на Безие

Page 35: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Нека разгледаме следния пример. Кривата на Безие C(u) от 3-та степен е определена от контролните точки P0(−8, 0), P1(−4, 4),P2(4, 4), P3(8, 0).

Нека преместим контролната точка P2 в ново положение P ∗2 (6, 8).

Тогава векторът на преместването ~v има координати

~v = P ∗2 − P2 = (6, 8)− (4, 4) = (2, 4).

Зависимостта между C(u) и кривата C∗(u), получена след премес-тването на P2, има вида

C∗(u) = C(u) + B3,2(u)~v.

Използвайки горна връзка и резултатите от алгоритъма на дьо Кас-телжо за кривата C(u), можем да намерим C∗(0.25), както следва

B3,2(0.25) = 3(0.25)2(1− 0.25) = 0.140625,

C∗(0.25) = C(0.25) + B3,2(0.25)~v = (−4.375; 2.25) + 0.140625(2, 4)

= (−4.3046875; 2, 8125).

Геометричен дизайнЛекция 3. Криви на Безие

Page 36: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

На картинката вляво е изобразена кривата C(u) преди премества-нето на контролната точка P2. Вдясно е изобразена кривата C∗(u),получена от C(u) чрез преместването P2 → P ∗

2 .

Геометричен дизайнЛекция 3. Криви на Безие

Page 37: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

И двете криви заедно – C(u) в син цвят, C∗(u) в зелен цвят ивекторът на преместването ~v в червен цвят.

От картинката се вижда, че при преместването на контролна точкана крива на Безие формата и се променя глобално.

Геометричен дизайнЛекция 3. Криви на Безие

Page 38: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Смяна на параметъра

Ако параметърът u на кривата на Безие C(u) е зададен в друг ин-тервал, различен от [0, 1], например [a, b], чрез извършване на смяната(субституцията)

u → u, u =u− a

b− a(19)

новият параметър u на кривата вече се изменя в [0, 1] и относно негоса в сила познатите свойства на основните функции на Безие.

Геометричен дизайнЛекция 3. Криви на Безие

Page 39: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Производна на крива на Безие

Нека C(u) е крива на Безие от n-та степен, определена от

C(u) =n∑

i=0

Bn,i(u)Pi.

Първата производна на C(u) е крива на Безие от степен n − 1,определена от основните функции на Безие Bn−1,i(u) и контрол-ните точки Qi = n[Pi+1 − Pi], i = 0, 1, ..., n чрез равенството

C(u) =n−1∑i=0

Bn−1,i(u)Qi =n−1∑i=0

Bn−1,i(u) {n[Pi+1 − Pi]} . (20)

Геометричен дизайнЛекция 3. Криви на Безие

Page 40: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Втората производна на C(u) е крива на Безие от степен n − 2(първа производна на C(u)), определена чрез контролните точкиRi (i = 0, 1, ..., n− 2) от равенството

C(u) =n−2∑i=0

Bn−2,i(u)Ri, Ri = n(n− 1) [Pi+2 − 2Pi+1 + Pi] .

(21)Стойност на производните на крива на Безие във вътрешносттана дефиниционния и интервал можем да пресмятаме като из-ползваме данните от алгоритъма на дьо Кастелжо. За първата ивтората производна на C(u) при u = u0 е известно следното:

C(u0) = n [Pn−1,1 − Pn−1,0] ,

C(u0) = n(n− 1) [Pn−2,2 − 2Pn−2,1 + Pn−2,0] .(22)

Геометричен дизайнЛекция 3. Криви на Безие

Page 41: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Геометричен дизайнЛекция 3. Криви на Безие

Page 42: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Ако дефиниционният интервал на параметъра u на кривата наБезие C(u) e [0, 1], от свойствата на полиномите на Бернщайнследват следните формули за пресмятане на стойностите на пър-вата и втората производна на крива на Безие от n-та степен вдвата и края, т.е. при u = 0 и u = 1

C(0) = n [P1 − P0] ,

C(1) = n [Pn − Pn−1] ,

C(0) = n(n− 1) [P2 − 2P1 + P0] ,

C(1) = n(n− 1) [Pn − 2Pn−1 + Pn−2] .

(23)

Геометричен дизайнЛекция 3. Криви на Безие

Page 43: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Сегментни (композитни) криви на Безие

Получават се при последователното съединяване на два или повечесегмента (криви) на Безие. Използват се в програмите за 2D графичендизайн, предпечатна подготовка (Adobe, Corel Draw, Scribus и др.).

Мотивация – ограниченията на кубичните криви на Безие, коитомогат да имат най-много две инфлексни точки (точки, в които кри-вината се анулира; кривата променя посоката си на извиване), еднапримка или един връх. Това ограничава формите, които могат да бъ-дат изчертани чрез една единствена кубична крива на Безие.

За изчертаването на по-сложни форми е необходимо да се използ-ват криви от по-висока степен или криви, получени чрез съединяванена (кубични) сегменти.

Последователните сегменти трябва да бъдат съединени с някакъвклас непрекъснатост (гладкост на съединяването).

Геометричен дизайнЛекция 3. Криви на Безие

Page 44: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Недостатъци на композитните криви на Безие, получени от кубичнисегменти:

Контролните полигони на композитни криви на Безие, съставениот кубични сегменти, трябва да съдържат 3k + 1 на брой конт-ролни точки (k = 1, 2, 3, ...).C1-непрекъснатост на съединяването се постига сравнително лес-но – стандартна за продуктите на Adobe и др.C2-непрекъснатост се постига по-трудно.Решение – използване на Б-сплайни или NURBS (в следващаталекция).

Геометричен дизайнЛекция 3. Криви на Безие

Page 45: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Съединяване на Безие сегменти – C1-непрекъснатост

Нека C(u) е крива на Безие от степен n, определена от контролнитеточки P0, P1, ..., Pn и D(u) е крива на Безие от степен m, определенаот контролните точки Q0, Q1, ..., Qm. Нека още двете криви се съеди-няват в точката Pn = Q0, т. е. C(1) = D(0).Условието за C1-непрекъснатост в точката на съединяване e C(1) =D(0). Пресмятаме:

C(1) = n[Pn − Pn−1], D(0) = m[Q1 −Q0], (24)

откъдето, като отчетем Pn = Q0, получаваме

Pn =nPn−1 + mQ1

n + m. (25)

От последното равенство следва, че точките Pn−1, Pn = Q0 и Q1 саколинеарни (точката Pn = Q0 лежи на отсечката Pn−1Q1, като я делив отношение m : n). В частност, ако n = m, следва Pn = 1

2Pn−1+ 12Q1,

което показва, че Pn = Q0 е среда на отсечката Pn−1Q1.Геометричен дизайнЛекция 3. Криви на Безие

Page 46: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Съединяване на Безие сегменти – G1-непрекъснатост

Аналогичен резултат се получава и при по-слабото условие за G1-непрекъснатост в точката на съединяване, което има видаD(0) = λC(1), λ > 0, т. е. допирателните вектори в точката на съ-единяване са еднопосочно колинеарни (като дължините им могат дабъдат различни).

Прилагайки това условие за кривите от предходния слайд, получа-ваме m[Q1 −Q0] = λn[Pn − Pn−1], откъдето

Pn =λnPn−1 + mQ1

λn + m. (26)

Последното равенство отново показва, че точките Pn−1, Pn = Q0 иQ1 са колинеарни. Този път точката Pn = Q0 дели отсечката Pn−1Q1

в отношение m : λn.

Геометричен дизайнЛекция 3. Криви на Безие

Page 47: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Гладко съединяване на криви (сегменти) на Безие –пример

Нека са дадени кривите на Безие:

C(u) от 3-та степен, определена от контролните точки P0(−4, 0),P1(−2, 2), P2(2, 2), P3(4, 0) и

D(u) от 2-ра степен, определена от контролните точки Q0(4, 0),Q1(7,−3), Q2(4,−12).

Проверете за C1−, C2−, G1−, G2− и κ−непрекъснатост в точкатана съединяване P3 = Q0.

Общата точка за двете криви (точката на съединяване) е последнаконтролна точка на C и първа за D. Следователно C(1) = D(0) =(4, 0). За кривата C ще пресмятаме производни в u = 1, а за D вu = 0.

Геометричен дизайнЛекция 3. Криви на Безие

Page 48: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Да започнем с първите производни и въпроса за съществуване напараметрична и геометрична непрекъснатост от първи ред (C1 и G1).Пресмятаме:

C(1) = 3[P3 − P2] = 3[(4, 0)− (2, 2)] = (6,−6),

D(0) = 2[P1 − P0] = 2[(7,−3)− (4, 0)] = (6,−6)(27)

Следователно C(1) = D(0), т.е. в точката на съединяване съществуваC1− и G1−непрекъснатост. Продължаваме с непрекъснатост от вториред.

C(1) = 3.2[P3 − 2P2 + P1] = 6[(4, 0)− 2(2, 2) + (−2, 2)] = (−12,−12),

D(0) = 2.1[P2 − 2P1 + P0] = 2[(4,−12)− 2(7,−3) + (4, 0)] = (−12,−12).

Тъй като C(1) = D(0), в точката на съединяване съществува C2− иG2−непрекъснатост. Следователно има и κ−(кривинна) непрекъсна-тост.

Геометричен дизайнЛекция 3. Криви на Безие

Page 49: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

На следващата фигура са изобразени двете криви на Безие: C(u) вчервено, D(u) в синьо и допирателните вектори на двете криви в точ-ката на съединяване в зелено.

Геометричен дизайнЛекция 3. Криви на Безие

Page 50: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Гладко съединяване на Безие сегменти – пример законструиране на крива

Дадена е кривата на Безие C(u) от трета степен, определена от кон-тролните точки P0(6, 0), P1(0, 0), P2(2, 3), P3(0, 3). Намерете всичкикриви на Безие D(u) от втора степен, които са съединени с C(u) сG2−непрекъснатост в точката P3.

Тъй като търсените криви D(u) са от втора степен, те се дефиниратчрез три контролни точки Q0, Q1, Q2. От условието, че двете кривисе съединяват в точката P3(0, 3) следва, че първата контролна точкана D(u) трябва да съвпада с последната на C(u), т.е. C(1) = D(0) =(0, 3) = P3 = Q0. Остава да определим другите две точки на D(u):Q1(a, b), Q2(c, d), т.е. координатите a, b, c, d.

За да изследваме за G2−непрекъснатост в точката на съединяване,първо трябва да осигурим съществуването на C1−непрекъснатост втази точка.

Геометричен дизайнЛекция 3. Криви на Безие

Page 51: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Пресмятаме първите производни на двете криви в точката на съе-диняването им:

C(1) = 3[P3 − P2] = 3[(0, 3)− (2, 3)] = 3(−2, 0) = (−6, 0)

D(0) = 2[Q1 −Q0] = 2[(a, b)− (0, 3)] = 2(a, b− 3).

В точката на съединяване съществува C1−непрекъснатост, точнокогато C(1) = D(0), откъдето получаваме (−6, 0) = 2(a, b − 3), т.е.a = −3, b = 3. Така определихме координатите на втората контролнаточка на търсената крива, а именно Q1(−3, 3).

Преминаваме към изследване за G2−непрекъснатост. Пресмятамевторите производни в точката на съединяване:

C(1) = 3.2[P3 − 2P2 + P1] = 6[(0, 3)− 2(2, 3) + (0, 0)] = 6(−4,−3)

D(0) = 2.1[Q2 − 2Q1 + Q0] = 2[(c, d)− 2(−3, 3) + (0, 3)] = 2(c + 6, d− 3).

Геометричен дизайнЛекция 3. Криви на Безие

Page 52: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Условието за G2−непрекъснатост е векторът C(1) − D(0) да е ко-линеарен на първата производна в точката на съединяване, т.е.

C(1)− D(0) = λC(1) = λD(0)

за някоe реално λ. От последното условие след заместване на произ-водните получаваме

−2c− 36 = −6λ, −2d− 12 = 0.

Следователно d = −6, c = 3λ− 18, λ ∈ R.

И така, търсените криви D(u) се определят от контролния полигонQ0(0, 3), Q1(−3, 3), Q2(3λ−18,−6), λ ∈ R. Отбелязваме, че контрол-ната точка Q2 не е еднозначно определена. Геометричното място наточките Q2 е правата с уравнение x = −18 + 3λ, y = −6.

Отбелязваме и че, ако вместо G2−непрекъснатост се изисквашеC2−непрекъснатост, контролната точка Q2 щеше да има само едновъзможно положение, което се получава при C(1) = D(0), т.е. заλ = 0, следователно Q2(−18,−6).

Геометричен дизайнЛекция 3. Криви на Безие

Page 53: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

На следващата фигура са изобразени двете криви на Безие: даденатакрива C(u) в синьо, конструираната крива D(u) в червено, допира-телните вектори на двете криви в точката на съединяване в зеленои правата, върху която лежат точките Q2, в оранжево. Кривите саизобразени в случая на C2-непрекъснато съединяване.

Геометричен дизайнЛекция 3. Криви на Безие

Page 54: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Кривинна непрекъснатост – пример със затворена кривана Безие

Нека разгледаме затворената крива на Безие C(u) от 5-та степен,съединяваща се в координатното начало, определена от контролнитеточки P0(0, 0), P1(−2,−2), P2(−2, 3), P3(2, 3), P4(2,−2) и P5(0, 0).Нека изследваме за непрекъснатост в точката на съединяване, т.е. вP0 = P5 = (0, 0).Пресмятаме първите производни:

C(0) = 5[P1 − P0] = 5[(−2,−2)− (0, 0)] = (−10,−10),

C(1) = 5[P5 − P4] = 5[(0, 0)− (2,−2)] = (−10, 10).

Тъй като C(0) 6= C(1), то в точката на съединяване не съществуваC1-непрекъснатост.Освен това векторите C(0) и C(1) не са еднопосочно колинеарни,което показва, че в изследваната точка не съществува дори и G1-непрекъснатост.

Геометричен дизайнЛекция 3. Криви на Безие

Page 55: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Тъй като в точката (0, 0) не съществува C1-непрекъснатост (непрекъс-натост от първи ред), не е възможно да съществува непрекъснатостот по-висок ред, т.е. в тази точка няма C2-, нито G2-непрекъснатост.Пресмятаме вторите производни, за да изследваме за кривинна неп-рекъснатост:

C(0) = 20[P2 − 2P1 + P0] = 20[(−2, 3)− 2(−2,−2) + (0, 0)] = (40, 140),

C(1) = 20[P5 − 2P4 + P3] = 20[(0, 0)− 2(2,−2) + (2, 3)] = (−40, 140).

Тогава C(0)× C(0) = C(1)× C(1) = 200(0, 0,−5), откъдето|C(0)× C(0)| = |C(1)× C(1)| = 1000.Освен това |C(0)| = |C(1)| = 10

√2.

Следователно

κ(0) = κ(1) =1

2√

2,

което показва, че в точката на съединяване съществува кривинна неп-рекъснатост.

Геометричен дизайнЛекция 3. Криви на Безие

Page 56: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

На следващата фигура е изобразена кривата (в червено) и допирател-ните вектори в точката на съединяване (в синьо, с намалени дължиниспрямо реалните).

Геометричен дизайнЛекция 3. Криви на Безие

Page 57: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Рационални криви на Безие

Обобщение на "целите" (полиномни) криви на Безие. Предоста-вят по-прецизен контрол на формата на кривата. С тяхна помощмогат точно да се изобразяват конични сечения – елипса (окръж-ност), хипербола, парабола.Уравнението на рационална крива на Безие от n-та степен имавида

C(u) =∑n

i=0 Bn,i(u)Piwi∑ni=0 Bn,i(u)wi

, u ∈ [0, 1], (28)

където wi > 0, wi ∈ R, се наричат тегла. Така с всяка контролнаточка освен координатите и в равнината или в пространството сесвързва и собствено тегло. Числителят е претеглена полиномнакрива на Безие, а знаменателят е претеглена сума на полиномитена Бернщайн.Всяка полиномна крива на Безие може да се разглежда като ра-ционална, за която всички контролни точки имат тегла wi = 1,i = 0, 1, ..., n.

Геометричен дизайнЛекция 3. Криви на Безие

Page 58: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Рационалните криви на Безие минават през първата и послед-ната си контрола точка, т.е. C(0) = P0 и C(1) = P1, както приполиномните.Ако всички тегла са неотрицателни, рационалната крива на Безиележи изцяло в изпъкналата обвивка на контролния си полигон.Ако някое от теглата е отрицателно число, това свойство се на-рушава.Увеличаването на теглото wj доближава кривата до контролнататочка Pj и обратно (допълнителен контрол на формата на кри-вата).Всяка рационална крива на Безие от 2-ра степен е дъга от коничносечение, която е

• елипса, ако w21 − w0w2 < 0;

• парабола, ако w21 − w0w2 = 0;

• хипербола, ако w21 − w0w2 > 0;

Геометричен дизайнЛекция 3. Криви на Безие

Page 59: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Геометричен дизайнЛекция 3. Криви на Безие

Page 60: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Дъга, представляваща една четвърт от единичната окръжност, мо-же да се зададе като рационална крива на Безие чрез контролнитеточки P0(1, 0), P1(1, 1), P2(0, 1) и теглата w0 = w1 = 1, w2 = 2 чрезуравнението

C(u) =(1− u2)

(10

)+ 2u(1− u)

(11

)+ 2u2

(01

)(1− u)2 + 2u(1− u) + 2u2

.

Параметричният вид на тази крива е

C(u) =(

1− u2

1 + u2,

2u

1 + u2

).

Геометричен дизайнЛекция 3. Криви на Безие

Page 61: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Геометричен дизайнЛекция 3. Криви на Безие

Page 62: Лекция 3. Криви на Безиеweb.uni-plovdiv.bg/marta/GD/lecture3.pdf · Геометричен дизайн доц. д-р Марта Теофилова специалност

Литература

М. Манев. Геометрия за информатици. Архимед, 2007.

М. Манев, М. Теофилова, А. Христов, Д. Грибачева. Ръководствоза решаване на задачи по геометрия за информатици. Универси-тетско издателство на ПУ, 2009.

L. Piegel, W. Tiller. The NURBS Book, 2. ed. Springer, 1997.

D. Salomon. Curves and Surfaces for Computer Graphics. Springer,2006.

D. Marsh. Applied Geometry for Computer Graphics and CAD, 2. ed.Springer, 2005.T. W. Sederberg, Computer Aided Geometric Design,http://tom.cs.byu.edu/~557/text/cagd.pdf.

http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/

Геометричен дизайнЛекция 3. Криви на Безие