• Rezultati Niso Bili Najdeni

MagistrskodeloMentorica:prof.dr.MarjetkaKnezLjubljana,2021 STOŽNICEINKVADRIKIVRACIONALNIBÉZIERJEVIOBLIKI UNIVERZAVLJUBLJANIFAKULTETAZAMATEMATIKOINFIZIKOFAKULTETAZARAČUNALNIŠTVOININFORMATIKORačunalništvoinmatematika–2.stopnjaAdaŠadlPraprotnik

N/A
N/A
Protected

Academic year: 2022

Share "MagistrskodeloMentorica:prof.dr.MarjetkaKnezLjubljana,2021 STOŽNICEINKVADRIKIVRACIONALNIBÉZIERJEVIOBLIKI UNIVERZAVLJUBLJANIFAKULTETAZAMATEMATIKOINFIZIKOFAKULTETAZARAČUNALNIŠTVOININFORMATIKORačunalništvoinmatematika–2.stopnjaAdaŠadlPraprotnik"

Copied!
64
0
0

Celotno besedilo

(1)

UNIVERZA V LJUBLJANI

FAKULTETA ZA MATEMATIKO IN FIZIKO

FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Računalništvo in matematika – 2. stopnja

Ada Šadl Praprotnik

STOŽNICE IN KVADRIKI V RACIONALNI BÉZIERJEVI OBLIKI

Magistrsko delo

Mentorica: prof. dr. Marjetka Knez

Ljubljana, 2021

(2)
(3)

Zahvala

Zahvaljujem se mentorici prof. dr. Marjetki Knez za ves vložen trud in čas, spod- budne besede, korektne popravke in produktivne sestanke, ki so omogočili nastanek magistrske naloge. Hvala tudi doc. dr. Janu Grošlju za pomoč pri iskanju ustrezne literature.

Zahvaljujem se tudi svoji družini, prijateljem, sošolcem in sošolkam, ki so me spodbujali pri pisanju, mi stali ob strani med študijem ter zaupali in verjeli vame.

(4)
(5)

Kazalo

Program dela vii

1 Uvod 1

2 Bézierjeve krivulje 1

2.1 Bernsteinovi bazni polinomi . . . 1

2.2 Polinomska Bézierjeva krivulja . . . 4

2.3 Racionalna Bézierjeva krivulja . . . 6

3 Predstavitev stožnic z racionalnimi Bézierjevimi krivuljami 11 3.1 Stožnice kot racionalne Bézierjeve krivulje stopnje 2 . . . 12

3.2 Prehod med implicitno in racionalno obliko stožnice . . . 14

3.2.1 Baricentrične koordinate . . . 14

3.2.2 Prehod iz racionalne Bézierjeve oblike v implicitno obliko . . 15

3.2.3 Prehod iz implicitne oblike v racionalno Bézierjevo obliko . . . 18

3.3 Klasifikacija . . . 21

3.4 Krožnica in krožni lok . . . 23

4 Bézierjeve ploskve 27 4.1 Polinomske Bézierjeve ploskve . . . 28

4.1.1 Bézierjeve ploskve iz tenzorskega produkta . . . 28

4.1.2 Bernsteinovi bazni polinomi dveh spremenljivk . . . 30

4.1.3 Trikotne Bézierjeve ploskve . . . 31

4.2 Racionalne Bézierjeve ploskve . . . 33

5 Predstavitev kvadrik z racionalnimi Bézierjevimi ploskvami 34 5.1 Stereografska projekcija . . . 35

5.2 Oktant sfere kot racionalna trikotna Bézierjeva krpa . . . 36

5.3 Šestina sfere kot racionalna Bézierjeva ploskev iz tenzorskega produkta 42 5.4 Racionalna Bézierjeva krpa stopnje 2, ki leži na sferi . . . 49

5.5 Hiperbolični paraboloid in plašč valja . . . 50

6 Zaključek 52

Literatura 53

(6)
(7)

Program dela

Osnovni objekti v računalniško podprtem geometrijskem oblikovanju so parame- trično podane krivulje in ploskve s polinomsko ali racionalno parametrizacijo, iz- raženo v Bézierjevi obliki. Pri modeliranju različnih oblik igrajo pomembno vlogo krožni loki in deli sfere, zato je pomembno, da poznamo njihovo racionalno Bézier- jevo predstavitev z uporabo kontrolnih točk in uteži. V magistrskem delu raziščite take predstavitve za nekoliko bolj splošen razred stožnic v ravnini in kvadrik v pro- storu. Med kvadrikami se osredotočite na predstavitve oktanta sfere in šestine sfere, s pomočjo katerih lahko z uporabo rotacij opišemo celotno sfero. Izpeljane rezultate ponazorite z numeričnimi zgledi.

Osnovna literatura

[5] G. Farin, Curves and surfaces for CAGD: a practical guide, Fifth Edition, Morgan Kaufmann Publishers, 2002

[4] G. Farin, NURBS - from projective geometry to practical use, 2nd Edition, A K Peters/CRC Press, 1999

Podpis mentorice:

(8)
(9)

Stožnice in kvadriki v racionalni Bézierjevi obliki Povzetek

Delo obravnava stožnice, podane kot racionalne Bézierjeve krivulje stopnje 2. V delu opišemo in ponazorimo algebraične in geometrijske lastnosti stožnic, podanih v taki obliki. Izpeljemo postopek za prehod iz racionalne Bézierjeve oblike stožnice v implicitno obliko in obratno. Na podlagi števila singularnosti stožnice, podane v racionalni Bézierjevi obliki, določimo njen tip. Podrobneje se posvetimo krožnemu loku oz. krožnici in pokažemo, da za predstavitev celotne krožnice potrebujemo racio- nalno Bézierjevo krivuljo stopnje vsaj5. Nato se posvetimo še predstavitvi kvadrikov z racionalnimi Bézierjevimi ploskvami. Pri tem se osredotočimo predvsem na sfero.

S pomočjo stereografske projekcije predstavimo oktant sfere kot racionalno trikotno Bézierjevo krpo, šestino sfere pa kot racionalno Bézierjevo ploskev iz tenzorskega produkta.

Conics and quadics in rational Bézier form Abstract

The master thesis presents conics as rational Bézier curves of degree 2. Some al- gebraic and geometric properties of conics, presented in such a form, are discussed.

The process of changing the form of a conic, from rational Bézier form to implicit form and vice versa, is described and illustrated. We determine the type of a conic, given in a rational Bézier form, based on its number of singularities. Some special attention goes to circular arcs and circles. We show that the degree of the Bézier curve forming a full circle must be at least5. Quadrics, presented as rational Bézier surfaces, are also discussed. Special attention goes to the sphere. With the help of the stereographic projection we present the octant of a sphere as a rational triangle Bézier patch and a sixth of a sphere as a rational tensor product Bézier surface.

Math. Subj. Class. (2010): 65D17

Ključne besede: Bézierjeve krivulje, stožnice, baricentrične koordinate, Bézierjeve ploskve, kvadriki, stereografska projekcija

Keywords: Bézier curves, conics, baricentric coordinates, Bézier surfaces, quadrics, stereographic projection

(10)
(11)

1 Uvod

Bézierjeve krivulje in ploskve sta v šestdesetih letih prejšnjega stoletja prvič predsta- vila francoski inženir Pierre Bézier ter francoski fizik in matematik Paul de Casteljau.

Gre za parametrično podane krivulje in ploskve s širokim področjem uporabe v raču- nalniško podprtem geometrijskem oblikovanju in računalniško podprti proizvodnji.

Bézierjeve krivulje in ploskve je že Bézier uporabljal za načrtovanje karoserij avto- mobilov s pomočjo računalnika. S pomočjo Bézierjevih ploskev lahko enostavno in na geometrijsko intuitiven način predstavimo mnoge 3D oblike, zaradi česar so ne- pogrešljivo orodje pri računalniških animacijah in na drugih področjih računalniške grafike. S pomočjo Bézierjevih krivulj pa lahko na primer oblikujemo tudi računal- niško pisavo. Loke, ki opisujejo krivine posameznih znakov neke pisave, je namreč preprosto sestaviti iz Bézierjevih krivulj.

V delu se bomo ukvarjali s stožnicami in njihovo posplošitvijo na ploskve, to so kvadriki. Stožnice in kvadriki se pogosto uporabljajo pri računalniško podprtem oblikovanju, zato je smiselno poznati njihovo predstavitev v Bézierjevi obliki. Opisali jih bomo s pomočjo racionalnih Bézierjevih krivulj in ploskev, ki dopuščajo nekaj več prostih parametrov za oblikovanje, kot navadne, polinomske Bézierjeve krivulje in ploskve. Najprej se bomo posvetili stožnicam in pokazali, da jih lahko predstavimo kot racionalne Bézierjeve krivulje stopnje2. Opisali bomo postopek za prehod iz im- plicitne oblike stožnice v racionalno Bézierjevo obliko in obratno ter pokazali, kako ugotovimo, ali stožnica, podana v racionalni Bézierjevi obliki, predstavlja elipso, parabolo ali hiperbolo. Poglavje o stožnicah bomo zaključili s podrobnejšo obrav- navo krožnice. Pokazali bomo, da za predstavitev celotne krožnice potrebujemo krivuljo stopnje vsaj 5. Pri obravnavi kvadrikov se bomo osredotočili predvsem na sfero. Najprej bomo opisali, kako lahko oktant sfere predstavimo kot trikotno raci- onalno Bézierjevo krpo, nato pa bomo predstavili še racionalno Bézierjevo ploskev iz tenzorskega produkta, ki opiše šestino sfere.

Magistrsko delo je razdeljeno na štiri vsebinske sklope. Najprej bomo zapisali definiciji polinomske in racionalne Bézierjeve krivulje in opisali njune osnovne la- stnosti. V tretjem poglavju bomo predstavili stožnice kot racionalne Bézierjeve krivulje stopnje2in izpeljali nekaj algebraičnih in geometrijskih lastnosti, ki sledijo iz predstavitve v taki obliki. V četrtem poglavju bomo spoznali dva tipa Bézierjevih ploskev, ki ju bomo nato v petem poglavju uporabili za predstavitev oktanta in šestine sfere.

2 Bézierjeve krivulje

2.1 Bernsteinovi bazni polinomi

Za definicijo Bézierjeve krivulje bomo potrebovaliBernsteinove bazne polinome, zato na tem mestu zapišimo njihovo definicijo in nekaj osnovnih lastnosti.

Definicija 2.1. Polinom Bin, definiran s predpisom Bin(t) =

(︃n i

)︃

ti(1−t)n−i,

(12)

imenujemo i-tiBernsteinov bazni polinom stopnje n.

Iz definicije sledi, da so Bernsteinovi bazni polinomi za t ∈ [0,1] nenegativni.

Hitro opazimo tudi, da so simetrični:

Bni(t) = Bn−in (1−t).

Naslednji trditvi nam povesta, da lahko Bernsteinove bazne polinome računamo po rekurzivni zvezi in da tvorijo particijo enote.

Trditev 2.2. Za Bernsteinove polinome velja rekurzivna zveza Bin(t) = (1−t)Bin−1(t) +tBn−1i−1(t).

Pri tem velja

B00(t) = 1 in Bin(t) = 0 za i /∈ {0, . . . , n}.

Za dokaz bomo potrebovali znano zvezo za binomski koeficient, to je (︃n

i )︃

=

(︃n−1 i

)︃

+

(︃n−1 i−1

)︃

. (2.1)

Dokaz. Uporabimo definicijo 2.1 ter zvezo (2.1) in dobimo Bin(t) =

(︃n i

)︃

ti(1−t)n−i =

(︃n−1 i

)︃

ti(1−t)n−i+

(︃n−1 i−1

)︃

ti(1−t)n−i =

=(1−t)Bin−1(t) +tBi−1n−1(t).

Trditev 2.3. Bernsteinovi bazni polinomi tvorijo particijo enote

n

∑︂

i=0

Bin(t) = 1.

Za dokaz bomo potrebovali binomski izrek, ki nam pove, da velja (x+y)n=

n

∑︂

i=0

(︃n i

)︃

xiyn−i. (2.2)

Dokaz. Uporabimo definicijo 2.1 in binomski izrek zax=t in y= (1−t):

n

∑︂

i=0

Bin(t) =

n

∑︂

i=0

(︃n i

)︃

ti(1−t)n−i = [t+ (1−t)]n = 1.

Oglejmo si še, kako izračunamo odvod Bernsteinovega baznega polinoma.

Trditev 2.4. Za odvod Bernsteinovega baznega polinoma velja dBin(t) =n(︁

Bi−1n−1(t)−Bin−1(t))︁

.

(13)

Za dokaz bomo potrebovali zvezi (︃n

i )︃

(n−i) = n

(︃n−1 i

)︃

in

(︃n i

)︃

i=n

(︃n−1 i−1

)︃

. (2.3)

Dokaz. Bernsteinov bazni polinom odvajamo po parametru t in v računu upošte- vamo zvezi (2.3). Dobimo

d

dtBin(t) = (︃n

i )︃

iti−1(1−t)n−i− (︃n

i )︃

ti(n−i)(1−t)n−1−i

=n

(︃n−1 i−1

)︃

ti−1(1−t)n−i−n

(︃n−1 i

)︃

ti(1−t)n−1−i

=n(︁

Bi−1n−1(t)−Bin−1(t))︁

.

Odvode Bernsteinovih baznih polinomov bomo potrebovali pri računanju odvoda Bézierjeve krivulje.

Naj Pn označuje vektorski podprostor polinomov stopnje manjše ali enake n. Naslednja trditev nam pove, da Bernsteinovi bazni polinomi tvorijo bazo tega pod- prostora.

Trditev 2.5. Bernsteinovi bazni polinomi Bin, i= 0,1, . . . , n, tvorijo bazo prostora Pn.

Dokaz. Bernsteinovih baznih polinomov Bin, i = 0,1, . . . , n, je n+ 1, kar je enako dimenziji podprostora Pn, zato moramo pokazati samo še njihovo linearno neodvi- snost. Dokazati moramo torej, da velja

n

∑︂

i=0

αiBin(t) = 0 ⇒ α01 =. . .=αn= 0.

PolinomBinrazpišemo po definiciji (definicija 2.1) in uporabimo binomski izrek (glej (2.2)) za (1−t)n−i. Dobimo

0 =

n

∑︂

i=0

αi (︃n

i )︃

ti(1−t)n−i =

n

∑︂

i=0

αi (︃n

i )︃

ti

n−i

∑︂

j=0

(︃n−i j

)︃

(−1)jtj

=

n

∑︂

i=0

αi (︃n

i )︃n−i

∑︂

j=0

(︃n−i j

)︃

(−1)jti+j.

V drugi vsoti zamaknemo indeks, nato pa zamenjamo vrstni red vsot. Dobimo 0 =

n

∑︂

i=0

αi (︃n

i )︃ n

∑︂

j=i

(︃n−i j−i

)︃

(−1)j−itj =

n

∑︂

j=0 j

∑︂

i=0

(−1)j−i (︃n

i

)︃(︃n−i j −i

)︃

αitj. Potenčne funkcije tj, j = 0,1, . . . , n, so linearno neodvisne, zato velja

j

∑︂

i=0

(−1)j−i (︃n

i

)︃(︃n−i j−i

)︃

αi = 0, j = 0,1, . . . , n.

(14)

Zgornje zapišemo v matrični obliki in dobimo

A

⎣ α0 α1 ...

αn

=

⎣ 0 0...

0

⎦ ,

kjer je A spodnje trikotna matrika z diagonalnimi elementi (︃n

0 )︃

, (︃n

1 )︃

, . . . , (︃n

n )︃

.

Determinantna spodnje trikotne matrike je enaka zmnožku diagonalnih elementov, ki pa so v našem primeru neničelni. Matrika A je torej obrnljiva, kar pomeni, da je rešitev zgornjega sistema enačb za αi enaka α01 =. . .=αn = 0.

2.2 Polinomska Bézierjeva krivulja

Zapišimo definicijo in nekaj osnovnih lastnosti polinomske Bézierjeve krivulje. S pomočjo polinomske Bézierjeve krivulje bomo v naslednjem razdelku definirali raci- onalno Bézierjevo krivuljo.

Definicija 2.6. Naj bodo b0,b1, . . . ,bn točke vRd. Polinomska Bézierjeva krivu- lja stopnje n v Rd je parametrično podana krivulja p : [0,1] → Rd, definirana s predpisom

p(t) =

n

∑︂

i=0

biBin(t),

kjerBinoznačujei-ti Bernsteinov bazni polinom stopnjen. Točkeb0,b1, . . . ,bnime- nujemokontrolne točke. Če kontrolne točke povežemo z daljicami, dobimokontrolni poligon.

Na sliki 1 je prikazana polinomska Bézierjeva krivulja stopnje 3, skupaj s kon- trolnimi točkami in kontrolnim poligonom.

V prejšnjem razdelku smo zapisali, da so Bernsteinovi bazni polinomi zat∈[0,1]

nenegativni in da tvorijo particijo enote. Torej je Bézierjeva krivulja p konveksna kombinacija svojih kontrolnih točk, iz česar sledi, da za t ∈ [0,1] leži v konveksni ovojnici svojega kontrolnega poligona. Velja tudi

p(0) =b0B0n(0) =b0 in p(1) = bnBnn(1) =bn,

torej Bézierjeva krivulja interpolira svojo prvo in zadnjo kontrolno točko.

Točko na Bézierjevi krivulji pri določeni vrednosti parametra t ∈ [0,1] dobimo s pomočjo de Casteljaujevega algoritma. Tukaj ga ne navajamo, bralec ga lahko najde v [5, poglavje 4.2].

Oglejmo si še, kako izračunamo odvod polinomske Bézierjeve krivulje, saj ga bomo potrebovali pri računanju odvoda racionalne Bézierjeve krivulje. Pri odva- janju krivulje upoštevamo zvezo za odvod Bernsteinovega baznega polinoma (glej

(15)

Slika 1: Polinomska Bézierjeva krivulja stopnjen = 3.

trditev 2.4) in dobimo d

dtp(t) =

n

∑︂

i=0

bin(︁

Bi−1n−1(t)−Bin−1(t))︁

=n

n

∑︂

i=0

biBi−1n−1(t)−n

n

∑︂

i=0

biBin−1(t)

=n

n−1

∑︂

i=0

bi+1Bin−1(t)−n

n−1

∑︂

i=0

biBin−1(t)

=n

n−1

∑︂

i=0

(bi+1−bi)Bin−1(t).

Dobljena formula za odvod polinomske Bézierjeve krivulje je torej

p(t) =n

n−1

∑︂

i=0

(bi+1−bi)Bn−1i (t). (2.4)

Zapišimo odvod pri parametrih t = 0 in t = 1. Ker velja B0n−1(0) = 1 in Bin−1(0) = 0 za i ∈ {1,2, . . . , n− 1} ter Bn−1n−1(1) = 1 in Bin−1(1) = 0 za i ∈ {0,1, . . . , n−2}, po zgornji formuli dobimo

p(0) =n(b1−b0) in p(1) =n(bn−bn−1). (2.5) Iz zapisa (2.5) je razvidno, da smerni vektor tangente na krivuljo v točki b0 leži na nosilki daljice b0b1, smerni vektor tangente na krivuljo v točki bn pa na nosilki daljice bn−1bn – glej sliko 2.

(16)

Slika 2: Smer odvoda polinomske Bézierjeve krivulje v točkah b0 (vektor s1) inbn (vektor s2).

2.3 Racionalna Bézierjeva krivulja

Racionalna Bézierjeva krivulja stopnje n v Rd je projekcija polinomske Bézierjeve krivulje stopnje n v Rd+1 na hiperravninow= 1, pri čemer točko v Rd+1 označimo kot (x, w) = (x1, x2, . . . , xd, w). Njena projekcija na hiperravnino w = 1 je podana s predpisom

(x, w)↦→(1 wx,1).

Točke oblike λ(x, w) zaλ ̸= 0 se preslikajo v isto točko, točke z w = 0 pa predsta- vljajo točke v neskončnosti.

Preden zapišemo formalno definicijo racionalne Bézierjeve krivulje, si za lažjo predstavo projekcije polinomske Bézierjeve krivulje na hiperravnino w= 1 oglejmo primer za d= 2 inn = 2.

Primer 2.7. Naj bo ppolinomska Bézierjeva krivulja stopnje 2 v R3 s kontrolnimi točkami b0,b1 inb2 – glej sliko 3. Njeno projekcijo na ravnino w= 1 dobimo tako, da vsako točko p(t) na krivulji p projeciramo na ravnino w= 1 vzdolž premice, ki poteka od točke p(t) pa do koordinatnega izhodišča. Tam, kjer taka premica seka ravnino w= 1, dobimo točko r(t) na racionalni Bézierjevi krivulji, ki leži v ravnini w= 1. Kontrolni točkib0 inb2 v našem primeru že ležita v ravniniw= 1, točkab1 pa ne. Kot je razvidno na sliki 3, je ustrezna srednja kontrolna točka za racionalno krivuljortočkab1, ki pa jo tudi dobimo s projekcijo vzdolž premice, ki poteka skozi koordinatno izhodišče. Višje kot je kontrolna točkab1, bližje bo krivuljar točkib1 – višina točke b1 (torej njena tretja koordinata) tako predstavlja t. i. utež točkeb1. Uteži kontrolnih točk racionalnih Bézierjevih krivulj nam omogočajo dodatne proste parametre pri oblikovanju, podrobneje pa bomo njihov pomen in uporabo razložili v nadaljevanju.

(17)

Slika 3: Projekcija polinomske Bézierjeve krivulje p stopnje n= 2 v R3 na ravnino w= 1 in dobljena racionalna Bézierjeva krivulja r stopnje n= 2 v R2. Vir: [5].

Definicija 2.8. Naj bodo b0,b1, . . . ,bn točke v Rd in w0, w1, . . . , wn ∈ R skalarji.

Racionalna Bézierjeva krivulja stopnje n v Rd je parametrično podana krivulja r : [0,1]→Rd, definirana s predpisom

r(t) =

n

∑︂

i=0

wibiBin(t)

n

∑︂

i=0

wiBin(t) ,

kjerBinoznačujei-ti Bernsteinov bazni polinom stopnjen. Točkeb0,b1, . . . ,bnime- nujemokontrolne točke. Če kontrolne točke povežemo z daljicami, dobimo kontrolni poligon. Številawi imenujemo uteži.

Pri delu z racionalnimi Bézierjevimi krivuljami privzamemo, da so vse uteži pozitivne. V nasprotnem primeru za krivuljo ne velja, da leži v konveksni ovojnici svojega kontrolnega poligona. Zato bomo od sedaj naprej, v kolikor ne bo navedeno drugače, vedno privzeli, da so vse uteži pozitivne. V zgornjem primeru (primer 2.7) smo videli, da uteži kontrolnih točk uravnavajo razdaljo krivulje do posamezne kontrolne točke. Slika 4 prikazuje vpliv uteži na krivuljo. Narisana je racionalna Bézierjeva krivulja stopnje n= 2 s kontrolnimi točkami b0,b1 inb2, za katere velja w0 = w2 = 1, vrednost srednje uteži w1 pa je za vsakega od primerov drugačna,

(18)

navedena je v opisu pod sliko. Večja kot je vrednost uteži w1, bližje je krivulja točki b1, v primeru negativne uteži w1 pa krivulja ne leži v konveksni ovojnici svojega kontrolnega poligona.

Slika 4: Vpliv uteži na racionalno Bézierjevo krivuljo. Zgoraj levo: w1 = 23, zgoraj desno: w1 = 4, spodaj: w1 =−16.

Za racionalno Bézierjevo krivuljo veljajo podobne lastnosti kot za polinomsko.

Zapišimo

r(t) =

n

∑︂

i=0

wibiBin(t)

n

∑︂

i=0

wiBni(t)

=

n

∑︂

i=0

bi wiBin(t)

n

∑︂

i=0

wiBin(t)

=

n

∑︂

i=0

biNin(t),

kjer smo označili

Nin(t) = wiBni(t)

n

∑︂

i=0

wiBin(t) .

Za t ∈ [0,1] očitno velja Nin(t) ≥ 0, saj so vse uteži pozitivne, Bernsteinovi bazni polinomi na intervalu (0,1) pa tudi. Podoben razmislek, kot smo ga naredili v dokazu trditve 2.3, pokaže, da velja tudi ∑︁n

i=0Nin(t) = 1, kar pomeni, da funkcije Nin tvorijo particijo enote. Tudi racionalne Bézierjeve krivulje interpolirajo svojo prvo in zadnjo kontrolno točko.

Točko na racionalni Bézierjevi krivulji pri določeni vrednosti parametrat∈[0,1]

prav tako dobimo s pomočjo de Casteljaujevega algoritma, prilagojenega za racio- nalne krivulje. Tukaj ga ne navajamo, bralec ga lahko najde v [5, poglavje 13.2].

V nadaljevanju se posvetimo utežem racionalnih Bézierjevih krivulj. Naslednja trditev nam pove, da lahko z ustrezno reparametrizacijo dobimo t. i. standardno obliko racionalne Bézierjeve krivulje, to pomeni, da za uteži velja w0 =wn = 1.

(19)

Trditev 2.9. Racionalno Bézierjevo krivuljo z neničelno prvo in zadnjo utežjo lahko reparametriziramo na način, da velja w0 =wn= 1.

Dokaz. Najprej bomo pokazali, da lahko z ustrezno reparametrizacijo krivulje dose- žemo, da sta prva in zadnja utež enaki. Za reparametrizacijsko funkcijo vzemimo

φ(u) = u

α·(1−u) +u,

kjer α predstavlja skalar, ki ga bomo določili kasneje. Oglejmo si s funkcijo φ reparametrizirani-ti Bernsteinov bazni polinom. Dobimo

Bin(φ(u)) = (︃n

i )︃ (︃

u α(1−u) +u

)︃i(︃

α(1−u) α(1−u) +u

)︃n−i

= αn−i (α(1−u) +u)n

(︃n i

)︃

ui(1−u)n−i

= αn−i

(α(1−u) +u)nBni(u).

Sedaj zapišimo s funkcijo φreparametrizirano racionalno Bézierjevo krivuljo in pri tem upoštevajmo pravkar dobljeni rezultat zaBin(φ(u)):

r(φ(u)) =

n

∑︂

i=0

wibiBin(φ(u))

n

∑︂

i=0

wiBin(φ(u))

=

n

∑︂

i=0

wibiαn−iBin(u)

n

∑︂

i=0

wiαn−iBin(u)

=

n

∑︂

i=0

ibiBin(u)

n

∑︂

i=0

iBin(u) ,

kjer smo označiliwˆin−i·wi. Če torej utežiwi nadomestimo zwˆi, oblika krivulje ostane nespremenjena. Številoα določimo tako, da bosta prva in zadnja utež enaki, torej da bo veljalo wˆ0 =wˆn. Ker velja wˆ0 = αnw0 in wˆn = α0wn = wn, iz enačbe αnw0 =wn izračunamo

α= n

√︃wn w0.

Ob taki izbiri številaαsta prva in zadnja utež enaki. Želimo še, da bosta obe enaki 1, kar pa dosežemo tako, da uteži še delimo z wn. Dobljene uteži označimo z w˜i. Velja torej

i = wˆi wn

= wi

√︁n

wniw0n−i i= 0,1, . . . , n. (2.6) Preverimo samo še, da res velja w˜0 =w˜n = 1:

0 = w0

n

w0n = 1 in w˜n= wn

n

wnn = 1.

Pokazali smo, da lahko v primeru, ko imamo podano racionalno Bézierjevo kri- vuljo, za katero velja w0 ̸= 0 in wn ̸= 0, naredimo tako reparametrizacijo, da velja w˜0 = w˜n = 1 in w˜i = √n wi

winw0n−i za i ∈ {1, . . . , n−1}. Brez škode za splošnost

(20)

lahko torej predpostavimo, da delamo s krivuljami v standardni obliki. Za dolo- čanje oblike krivulje tako dobimo n −1 dodatnih prostih parametrov, to so uteži w1, w2, . . . , wn−1.

S pomočjo uteži definiramo t. i. utežne točke, ki ležijo na stranicah kontrolnega poligona.

Definicija 2.10. Utežne točke qi za i∈ {0,1, . . . , n−1}so definirane kot qi = wi

wi+wi+1bi+ wi+1

wi +wi+1bi+1.

Na sliki 5 je ponazorjena racionalna Bézierjeva krivulja stopnje n = 2 skupaj z utežnima točkama q0 inq1. Vrednosti uteži so w0 =w2 = 1 in w1 = 32.

Slika 5: Racionalna Bézierjeva krivulja stopnjen = 2 in utežni točki q0 in q1. Točka qi leži na daljici med kontrolnima točkama bi in bi+1 in to daljico deli v razmerju wi+1 : wi. Razmerje med utežjo wi+1 in utežjo wi lahko izrazimo tudi s pomočjo razmerja treh kolinearnih točk bi,qi in bi+1. Zapišimo definicijo takega razmerja.

Definicija 2.11. Naj bodo a,xin b tri kolinearne točke in zapišimo x=αa+βb,

kjer je α+β = 1. Razmerje točk a,x inb definiramo kot ratio(a,x,b) = β

α. S pomočjo definiranega razmerja lahko zapišemo

ratio(bi,qi,bi+1) = wi+1

wi (2.7)

oz.

wi+1 =wi·ratio(bi,qi,bi+1).

Če izberemo prvo utež w0, so nato po zgornji enakosti iz utežnih točk določene še ostale uteži.

(21)

Oglejmo si še, kako izračunamo odvod racionalne Bézierjeve krivulje. Naj bo r racionalna Bézierjeva krivulja, ki smo jo dobili s projekcijo polinomske Bézierjeve krivulje p na ravnino w= 1. Potem velja

r(t) = p(t)

w(t) oz. p(t) =r(t)w(t), kjer smo označili

p(t) =

n

∑︂

i=0

wibiBin(t) in w(t) =

n

∑︂

i=0

wiBin(t).

Parametrizacijo krivulje odvajamo po pravilu za odvod produkta in dobimo p(t) = r(t)w(t) +r(t)w(t).

oz.

r(t) = 1

w(t)(p(t)−r(t)w(t)). (2.8) Zapišimo odvod pri parametrut= 0. V zgornji formuli upoštevamo zvezo za odvod polinomske Bézierjeve krivulje (formula (2.4)) in dobimo

r(0) = 1

w0(n(w1b1−w0b0)−b0n(w1−w0)) = nw1

w0(b1−b0). (2.9) Podobno za t= 1 dobimo

r(1) =nwn−1

wn (bn−bn−1).

Torej tudi za racionalne Bézierjeve krivulje velja, da smerni vektor tangente na krivuljo v točkib0 leži na nosilki daljice b0b1, smerni vektor tangente na krivuljo v točkibn pa na nosilki daljice bn−1bn.

3 Predstavitev stožnic z racionalnimi Bézierjevimi krivuljami

Stožnice oz. krivulje drugega reda so podane z enačbo f(x, y) = 0,

kjer je f kvadratni polinom spremenljivk x in y. Poznamo tri tipe stožnic; to so elipsa, parabola in hiperbola. V tem poglavju si bomo ogledali, kako lahko stožnico predstavimo s pomočjo parametrične krivulje. Polinomske Bézierjeve krivulje ne bodo zadostovale, saj je edina stožnica, ki je hkrati tudi polinom, parabola. Zato za predstavitev stožnic v Bézierjevi obliki potrebujemo racionalne Bézierjeve krivulje.

Le-te smo definirali v prejšnjem poglavju, tukaj pa bomo predstavili njihovo vlogo in lastnosti pri predstavitvi stožnic.

(22)

3.1 Stožnice kot racionalne Bézierjeve krivulje stopnje 2

Pri racionalnih Bézierjevih krivuljah imamo opravka s projekcijo polinomske Bézi- erjeve krivulje na ravnino, zato nam bo prav prišla naslednja definicija stožnice.

Definicija 3.1. Stožnica v R2 je projekcija parabole v R3 na neko ravnino.

Parabola je polinom stopnje 2, zato jo vR3 lahko zapišemo v obliki polinomske Bézierjeve krivulje stopnje 2. Če za ravnino iz zgornje definicije izberemo w = 1, iz definicije racionalne Bézierjeve krivulje (kot projekcije polinomske Bézierjeve krivulje na ravnino w= 1) sledi, da zapis

c(t) =

2

∑︂

i=0

wibiBi2(t)

2

∑︂

i=0

wiBi2(t)

= w0b0B02(t) +w1b1B12(t) +w2b2B22(t)

w0B02(t) +w1B12(t) +w2B22(t) (3.1) predstavlja enačbo stožnice vR2. V nadaljevanju izpeljimo nekaj osnovnih lastnosti stožnice, podane v standardni (w0 =w2 = 1) racionalni Bézierjevi obliki.

Slika 6: Točke b1,c1

2 in mso kolinearne in ležijo na premici p. Oglejmo si točko c1

2 =c(︁1

2

)︁. Iz (3.1) sledi c1

2 = b0+ 2w1b1+b2

2 + 2w1 . (3.2)

Označimo še m= b0+b2 2 in pokažimo, da točkac1

2 leži na premicip, ki poteka skozi točki min b1 – glej sliko 6. Vektorska enačba premice pje

p(λ) =m+λs1,

(23)

kjer je s1 =b1−m. Kratek račun pokaže, da velja p(︂

w1

1+w1

)︂

=c1

2. Točka c1

2 torej leži na premici p, hkrati pa seveda leži na stožnici c. Točka c1

2 je torej presečišče premice p in stožnice c.

Spomnimo se definiranega razmerja treh kolinearnih točk (definicija 2.11). Iz enakosti (2.7) za i= 0 ob upoštevanjuw0 = 1 sledi

ratio(b0,q0,b1) =w1, kjer je

q0 = b0+w1b1 1 +w1 . Če zvezo (3.2) zapišemo v obliki

c1

2 = 1

1 +w1

(︃b0+b2

2 +w1b1 )︃

= 1

1 +w1m+ w1 1 +w1b1, vidimo, da velja tudi

ratio(m,c1

2,b1) = w1. Pokažimo enakost

ratio(b0,q0,b1) = ratio(m,c1

2,b1) (3.3)

še geometrijsko. Razmerje treh kolinearnih točk, kot smo ga definirali v definiciji 2.11, se s paralelno projekcijo ohranja – glej [5, poglavje 3.1] – zato (3.3) pokažemo tako, da poiščemo paralelno projekcijo, ki bo točko b0 preslikala v točko m, točko q0 pa v točko c1

2. Oglejmo si sliko 7. Naj bo q premica, ki poteka skozi točki b0

Slika 7: Projekcija na premico p.

in b1. Projekcijo iz premice q na premico p določimo vzdolž premice r, ki poteka skozi točkib0 inm. Očitno je, da je slika točkeb0 točkam. Pokazati moramo samo

(24)

še, da se točka q0 preslika v točko c1

2. To pomeni, da mora premica r1, ki poteka skozi točko q0 in je vzporedna premicir, premicopsekati v točkic1

2. Smerni vektor premice r je s2 =b2−b0, torej lahko enačbo premice r1 zapišemo kot

r1(λ) = q0+λs2. Kratek račun pokaže, da velja r1(︂

1 2(1+w1)

)︂

= c1

2. Točka c1

2 torej leži tako na pre- mici p kot tudi na premici r1, zato predstavlja njuno presečišče. Tako smo še na geometrijski način preverili enakost (3.3) in posledično tudi enakost

ratio(m,c1

2,b1) =w1.

Izpeljani rezultati nam bodo prišli prav kasneje, ko bomo iskali racionalno Bézierjevo obliko stožnice iz dane implicitne oblike.

3.2 Prehod med implicitno in racionalno obliko stožnice

Implicitni zapis stožnice je oblike f(x, y) = 0, kjer je f kvadratni polinom dveh spremenljivk x in y. V tem razdelku bomo opisali, kako dobimo implicitni zapis stožnice, če imamo podano stožnico v racionalni Bézierjevi obliki in obratno. Po- magali si bomo z baricentričnimi koordinatami, ki si jih bomo podrobneje ogledali v naslednjem podrazdelku.

3.2.1 Baricentrične koordinate

V tem razdelku bomo imeli opravka s trikotniki. Vsakič, ko imamo podan trikotnik, predpostavimo, da je le-ta neizrojen (njegova oglišča so torej tri nekolinearne točke).

Lema 3.2. V R2 naj bo podan trikotnik T z oglišči A,B in C. Vsako točkox∈R2 lahko na enoličen način zapišemo v obliki

x=uA+vB+wC, (3.4)

kjer velja u+v+w= 1 in u, v, w ∈R.

Trojico(u, v, w)iz zgornje leme imenujemobaricentrične koordinatetočkexglede na trikotnik T.

Dokaz. Označimo:

A= (x1, y1) C= (x3, y3) B= (x2, y2) x= (x, y).

Enakost (3.4) lahko potem zapišemo v obliki

(x, y) = u(x1, y1) +v(x2, y2) +w(x3, y3), oz. v matrični obliki ⎡

1 1 1

x1 x2 x3

y y y

⎦·

⎣ u v w

⎦=

⎣ 1 x y

⎦.

(25)

Označimo matriko sistema z A:

A=

1 1 1

x1 x2 x3 y1 y2 y3

⎦.

Številau, v inwpoiščemo kot rešitve zgornjega sistema enačb s pomočjo Cramerje- vega pravila in dobimo

u= det

1 1 1

x x2 x3

y y2 y3

det(A) , v = det

1 1 1 x1 x x3

y1 y y3

det(A) in w=

det

1 1 1 x1 x2 x y1 y2 y

⎦ det(A) . Kratek premislek hitro pokaže, da det(A) predstavlja ravno dvokratnik predznačene ploščine trikotnikaT. Tudi na determinante matrik v števcih zgornjih zapisov lahko gledamo kot na dvokratnike ploščin ustreznih trikotnikov. Naj oznaka ⟨T1,T2,T3⟩ označuje trikotnik T z oglišči T1,T2 in T3 in naj pl(T) označuje predznačeno plo- ščino trikotnikaT. Potem lahko zapišemo

u= pl(⟨x,B,C⟩)

pl(T) , v = pl(⟨A,x,C⟩)

pl(T) in w= pl(⟨A,B,x⟩) pl(T) .

V zgornjem postopku delimo z det(A) oz. pl(T), ki pa je različna od 0, saj trikotnik T ni izrojen.

S pomočjo baricentričnih koordinat bomo pokazali, kako lahko dobimo implicitni zapis stožnice, če imamo podano njeno racionalno Bézierjevo obliko.

3.2.2 Prehod iz racionalne Bézierjeve oblike v implicitno obliko

Vemo že, da za točko c(t) na stožnici, ki je podana v racionalni Bézierjevi obliki, velja

c(t) = w0b0B02(t) +w1b1B12(t) +w2b2B22(t)

2

∑︂

i=0

wiBi2(t)

.

Po drugi strani pa lahko to točko s pomočjo baricentričnih koordinat glede na tri- kotnik z ogliščib0,b1 inb2 zapišemo v obliki

c(t) =τ0b01b12b2,

(26)

kjer velja τ012 = 1. Zgornja zapisa enačimo in primerjamo koeficiente, ki nastopajo pri točkah b0,b1 inb2. Dobimo

τ0 = w0B02(t)

2

∑︂

i=0

wiBi2(t)

= w0(1−t)2

2

∑︂

i=0

wiBi2(t)

, (3.5)

τ1 = w1B12(t)

2

∑︂

i=0

wiBi2(t)

= 2w1t(1−t)

2

∑︂

i=0

wiBi2(t)

, (3.6)

τ2 = w2B22(t)

2

∑︂

i=0

wiBi2(t)

= w2t2

2

∑︂

i=0

wiBi2(t)

. (3.7)

Iz enakosti (3.5) izrazimo (1−t)2 in dobimo

(1−t)2 = τ0 w0

·

2

∑︂

i=0

wiBi2(t), iz enakosti (3.7) pa izrazimo t2 in dobimo

t2 = τ2

w2 ·

2

∑︂

i=0

wiBi2(t).

Enakost (3.6) kvadriramo, nato pa vanjo vstavimo zgoraj izražena t2 in(1−t)2, kar implicira zvezo

τ12 = 4τ0τ2w21

w0w2 . (3.8)

V prejšnjem podrazdelku smo v dokazu leme 3.2 pokazali, da lahko baricentrične ko- ordinate neke točke zapišemo v obliki kvocienta determinant ustreznih matrik. Naj bxi označuje x koordinato i-te kontrolne točke in byi njeno y koordinato. Označimo še c(t) = (cx(t),cy(t)) = (x, y). Za τ0, τ1 inτ2 lahko zapišemo

τ0 = det

1 1 1

x bx1 bx2 y by1 by2

det(A) , τ1 = det

1 1 1 bx0 x bx2 by0 y by2

det(A) in τ2 = det

1 1 1

bx0 bx1 x by0 by1 y

⎦ det(A) , kjer smo z A označili matriko

A=

1 1 1

bx0 bx1 bx2 by by by

⎦.

(27)

V zgornjih zvezah poračunamo determinante v števcih in dobimo τ0 = x(by1 −by2) +y(bx2 −bx1) +bx1by2−by1bx2

det(A) , (3.9)

τ1 = x(by2 −by0) +y(bx0 −bx2) +by0bx2 −bx0by2

det(A) , (3.10)

τ2 = x(by0 −by1) +y(bx1 −bx0) +bx0by1−by0bx1

det(A) . (3.11)

Če v enakosti (3.8) upoštevamo pravkar zapisane zveze za τ0, τ1 in τ2, v zapisu do- bimo samo dve neznanki, to staxiny koordinati točkec(t). Zapis (3.8) preuredimo v obliko

τ12−4τ0τ2w12 w0w2

= 0

in tako dobimo implicitno obliko stožnice f(x, y) = 0, kjer velja

f(x, y) = w0w2(x(by2 −by0) +y(bx0 −bx2) +by0bx2 −bx0by2)2

−4w21(x(by1 −by2) +y(bx2 −bx1) +bx1by2−by1bx2)· (3.12)

·(x(by0 −by1) +y(bx1 −bx0) +bx0by1−by0bx1).

Opisani postopek za prehod iz racionalne Bézierjeve oblike v implicitno obliko stožnice si oglejmo na primeru.

Primer 3.3. Podana je racionalna Bézierjeva krivulja stopnje 2 s kontrolnimi toč- kami

b0 =(︂

−1,√ 3/2)︂

, b1 =(︂

2,√ 3)︂

, b2 = (2,0) in utežmi

w0 = 1, w1 = 1

2, w2 = 1.

Krivulja je v koordinatnem sistemu predstavljena na sliki 8. Baricentrične koordi-

Slika 8: Podana racionalna Bézierjeva krivulja stopnje 2.

(28)

nate τ0, τ1 in τ2 izračunamo po formulah (3.9)–(3.11) in dobimo τ0 = 1

3(2−x), τ1 = 1

6 (︂

x+ 2√

3y−2)︂

, τ2 = 1

6 (︂

x−2√

3y+ 4)︂

.

Z upoštevanjem vrednosti uteži iz (3.12) sledi implicitna enačba x2

4 +y2−1 = 0, (3.13)

ki predstavlja elipso s središčem v koordinatnem izhodišču – slika 9.

Slika 9: Stožnica cdoločena z implicitno enačbo (3.13). Z rdečo je označen izsek, ki ga določa racionalna Bézierjeva krivulja za t∈[0,1].

3.2.3 Prehod iz implicitne oblike v racionalno Bézierjevo obliko

Podano imamo stožnico v implicitni obliki in njen del oz. lok želimo zapisali kot racionalno Bézierjevo krivuljo stopnje 2. Naj bo to lok med točkama A inB – glej sliko 10a. Vemo, da racionalne Bézierjeve krivulje interpolirajo svojo prvo in zadnjo kontrolno točko, zato mora veljati b0 =A inb2 =B. Če določimo šew0 =w2 = 1, da bomo dobili standardno obliko, moramo poiskati samo še kontrolno točko b1 in njeno utež w1. Oglejmo si najprej, kako dobimo točko b1. Pri računanju odvoda racionalne Bézierjeve krivulje smo pokazali, da smerni vektor tangente na krivuljo v točki b0 leži na daljici b0b1, smerni vektor tangente na krivuljo v točki bn pa leži na daljici bn−1bn. Za krivuljo stopnje 2 to pomeni, da se tangentni premici na krivuljo v točkahb0 in b2 sekata v točki b1 – glej sliko 10b. Iskano kontrolno točko b1torej dobimo kot presečišče tangent na dano stožnico v točkah b0 inb2. Tangenti najdemo s pomočjo gradienta polinomaf(x, y)– gradient je pravokoten na stožnico, tangenta pa je pravokotna na gradient. Gradient v točki b0 je enak

∇f(b0) = (fx(b0), fy(b0)),

(29)

torej bo smerni vektor tangente v točki b0 enak (−fy(b0), fx(b0)).

Enačba tangente na stožnico v točkib0 je potem oblike t0(λ) = b0+λ(−fy(b0), fx(b0)).

Podobno dobimo enačbo tangente na stožnico v točki b2: t2(µ) = b2+µ(−fy(b2), fx(b2)).

Koordinati njunega presečišča določata točkob1. Z nekaj računanja lahko izpeljemo b1 =t0

(︃ (b2−b0)×(−fy(b2), fx(b2)) (−fy(b0), fx(b0))×(−fy(b2), fx(b2))

)︃

, kjer operacija × predstavlja planarni vektorski produkt, to je

(x1, y1)×(x2, y2) = x1y2−y1x2. Torej lahko točkob1 dobimo po formuli

b1 =b0+ (b2−b0)×(−fy(b2), fx(b2))

(−fy(b0), fx(b0))×(−fy(b2), fx(b2))·(−fy(b0), fx(b0)). (3.14) Opomba 3.4. Pri izbiri loka stožnice oz. točk A in B moramo paziti, da tangenti na stožnico v teh dveh točkah ne bosta vzporedni.

(a) Podana stožnica in njen lok

AB.

(b) Tangenti na stožnico v točkah A inB se sekata v točki b1.

Slika 10: Stožnica, katere lok AB želimo zapisati v racionalni Bézierjevi obliki, in določitev točke b1 s pomočjo tangent na stožnico.

Utež w1 določimo s pomočjo razmerja ratio(m,c1

2,b1). Na koncu razdelka 3.1 smo pokazali, da velja

ratio(m,c1

2,b1) = w1.

(30)

Točko b1 dobimo po opisanem postopku, točka mje središče daljice b0b2, točkac1 pa je presečišče stožnice in premice, ki poteka skozi točkiminb1. Ko imamo vse tri2

točke, izračunamo njihovo razmerje in tako dobimo iskano utež w1. Opomnimo, da v splošnem za presečišče stožnice s premico dobimo 2 rešitvi. Za izračun razmerja vzamemo tisto rešitev, ki leži znotraj trikotnika, ki ga določa kontrolni poligon s točkami b0,b1 in b2. V primeru, da bi vzeli tisto presečišče, ki ne leži znotraj trikotnika, ki ga določa kontrolni poligon, bi bilo razmerje ratio(m,c1

2,b1)negativno, saj točka c1

2 v takem primeru ne bi ležala med točkama minb1. Posledično bi bila negativna tudi iskana utež w1.

Tudi ta razdelek zaključimo s primerom. Vzeli bomo implicitno obliko elipse, ki smo jo izpeljali v primeru 3.3, in nazaj izračunali njeno racionalno Bézierjevo obliko.

Primer 3.5. Podana je elipsa z enačbo x2

4 +y2−1 = 0.

Njen lok med točkama A = (︁

−1,√ 3/2)︁

in B = (2,0) želimo zapisati v racionalni Bézierjevi obliki. Velja

b0 =(︂

−1,√ 3/2)︂

, b2 = (2,0), w0 = 1 in w2 = 1.

Izračunati moramo še točko b1 in utež w1. Za določitev točke b1 potrebujemo parcialna odvoda funkcije

f(x, y) = x2

4 +y2−1.

Velja

fx(x, y) = x

2 in fy(x, y) = 2y.

Smerna vektorja tangentnih premic v točkah b0 in b2 sta potem (−fy(b0), fx(b0)) = (︂

−√

3,−1/2)︂

in (−fy(b2), fx(b2)) = (0,1).

Po formuli (3.14) dobimo b1 =(︂

−1,√ 3/2)︂

+

(︁3,−√ 3/2)︁

×(0,1) (︁−√

3,−1/2)︁

×(0,1)·(︂

−√

3,−1/2)︂

= (︂

−1,√ 3/2

)︂

− 3

√3 ·(︂

−√

3,−1/2)︂

=(︂

2,√ 3)︂

.

Za izračun uteži w1 potrebujemo točkim inc1

2. Točka mje središče daljice b0b2: m= b0+b2

2 =

(︁−1,√ 3/2)︁

+ (2,0)

2 =

(︂

1/2,√ 3/4

)︂

. Točka c1

2 je presečišče elipse in premice p, ki poteka skozi točki b1 in m. Enačba premice pje

y=

√3 x.

(31)

Premicap in elipsa in imata dve presečišči, to sta točki P1 =(︂

1,√ 3/2)︂

in P2 =(︂

−1,−√ 3/2)︂

. Za točkoc1

2 vzamemo tisto presečišče, ki leži znotraj konveksne ovojnice kontrolnega poligona – glej sliko 11. To je točkaP1, torej velja

c1

2 =(︂

1,√ 3/2)︂

. Kratek račun pokaže, da velja

c1

2 =αm+βb1 = 2

3 (︂

1/2,√ 3/4)︂

+1 3

(︂

2,√ 3)︂

,

kjer jeα+β = 23+13 = 1. Po definiciji razmerja treh kolinearnih točk lahko zapišemo ratio(m,c1

2,b1) = β α = 1

2.

Iskana utež je potem w1 = 12. Vidimo, da smo res dobili racionalno Bézierjevo krivuljo iz primera 3.3.

Slika 11: Slika k primeru 3.5: prehod iz implicitne oblike stožnice v racionalno Bézierjevo obliko.

3.3 Klasifikacija

V tem razdelku bomo pokazali, kako določimo tip stožnice, podane v racionalni Bé- zierjevi obliki. Za začetek ponovimo, kako tip določimo, če imamo podano stožnico v implicitni obliki

f(x, y) = 0, f(x, y) =Ax2+Bxy+Cy2+Dx+Ey+F .

(32)

Zgornje zapišemo v matrični obliki in dobimo [︁x y]︁

[︃ A B/2

B/2 C

]︃ [︃

x y ]︃

+[︁

D E]︁

[︃x y ]︃

+F = 0.

Tip stožnice je odvisen od determinante matrike M =

[︃ A B/2

B/2 C

]︃

. Velja:

• Če je det(M)>0 oz. 4AC−B2 >0, dobimo elipso.

• Če je det(M) = 0 oz. 4AC−B2 = 0, dobimo parabolo.

• Če je det(M)<0 oz. 4AC−B2 <0, dobimo hiperbolo.

Tip stožnice, ki je podana v racionalni Bézierjevi obliki, dobimo s pomočjo nje- nega t. i. komplementarnega dela. Tega dobimo tako, da v (3.1) negiramo predznak srednje uteži w1. S tem ne spremenimo stožnice, samo njeno reprezentacijo – še vedno gre za isto stožnico, saj negiranje srednje uteži ne spremeni njene implicitne oblike (glej (3.8), kjer nastopa w21). Zaradi negativne srednje uteži komplementarni del stožnice leži zunaj konveksne ovojnice svojega kontrolnega poligona. Originalni in komplementarni del stožnice, evalvirana pri vseh t ∈ [0,1], skupaj predstavljata celotno stožnico – glej [5, poglavje 12.7]. Reprezentacija stožnice z racionalno Bézi- erjevo krivuljo s pozitivnimi utežmi nima singularnosti, torej jih ima njen komple- mentarni del. Tip stožnice tako določimo na podlagi števila singularnosti njenega komplementarnega dela. Predpostavimo standardno obliko in zapišimo parametri- zacijo komplementarnega dela cˆ:

c

ˆ(t) = b0B02(t)−w1b1B12(t) +b2B22(t)

B02(t)−w1B12(t) +B22(t) . (3.15) Ničle imenovalca v (3.15) določajo singularnosti. Dobimo jih iz kvadratne enačbe

B02(t)−w1B12(t) +B22(t) = (1−t)2−2w1t(1−t) +t2 = 0, ki se poenostavi v

(1 +w1)t2−(1 +w1)t+ 1 2 = 0.

Ničle poiščemo s pomočjo diskriminante:

D= (−1)2(1 +w1)2−2(1 +w1) = w12−1.

Singularnosti torej dobimo pri sledečih vrednostih parametra t: t1,2 = 1 +w1±√︁

w12−1 2 + 2w1 .

Pri vrednosti w1 <1 ne dobimo realnih rešitev, torej nimamo singularnosti. V tem primeru je dana stožnica elipsa. Pri vrednosti w1 = 1 dobimo eno dvojno rešitev, torej eno singularnost – dana stožnica je parabola. V primeru w1 > 1 pa dobimo dve singularnosti, zato je dana stožnica hiperbola. Če povzamemo:

• Če je w1 <1dobimo elipso.

• Če je w1 = 1 dobimo parabolo.

• Če je w1 >1dobimo hiperbolo.

Reference

POVEZANI DOKUMENTI

- z inidrektno metodo (Mašano kulturo najprej cepimo na gojišče do posameznih kolonij (Slika 3.). Na plošči z mešano kulturo izberemo kolonijo bakterije, ki jo želimo izolirati v

- z inidrektno metodo (Mašano kulturo najprej cepimo na gojišče do posameznih kolonij (Slika 3.). Na plošči z mešano kulturo izberemo kolonijo bakterije, ki jo želimo izolirati v

Namen prispevka je dvojen: 2 (i) z analizo sopojavnosti ključnih besed v znanstveni literaturi želimo predstaviti dinamiko razvoja področja umetne inteligentnosti v svetu

Metoda prilagajanja ploskve z inverzno razdaljo deluje najbolje tudi , ko vzorčne točke zavzamejo ekstreme ploskve in je ploskev relativno gladka (Slika 39). Pri redkem ali zelo

Prav tako Perzejeve krivulje, ki so preseki torusa z ravnino, ki je vzporedna njegovi osi.. Presek valja in sfere, pri čemer se valj od znotraj dotika sfere, je krivulja, ki ji

Ker v našem primeru za zdaj nimamo omejitev na krepkem nivoju, nas je zanimal graf primerjave vrednosti kriterijske funkcije na srednjem ni- voju glede na optimizacijski algoritem

V nekaterih primerih je raˇ cunanje vrednosti integrala prezahtevno zaradi na- rave integranda, lahko pa funkcije ne poznamo v celoti in poznamo le nekaj vrednosti v razliˇ cnih

Reševanje mini iger je lahko pomenljivo, a avtorji okolja SC2LE opažajo, da je bilo posnemovalno učenje na podlagi posnetkov glavne igre posredno uspešnejše tudi po kriterijih