• Rezultati Niso Bili Najdeni

To poglavje bomo posvetili eni izmed najpogosteje uporabljenih stožnic v geometrij-skem oblikovanju, to je krožnici. Navedli bomo nekaj lastnosti krožnice in krožnih lokov, predstavljenih z racionalno Bézierjevo krivuljo, ter pokazali, da za predsta-vitev celotne krožnice z racionalno Bézierjevo krivuljo, ki ima vse uteži pozitivne, potrebujemo krivuljo stopnje vsaj 5. Brez škode za splošnost predpostavimo, da ima krožnica enotski radij in središče v koordinatnem izhodišču. Njena implicitna enačba je

x2+y2 = 1. (3.16)

Naj racionalna Bézierjeva krivulja stopnje 2 v standardni obliki s kontrolnimi toč-kamib0,b1 inb2 opisuje krožni lok. Potem velja:

1. Za utež w1 veljaw1 <1.

2. Kontrolni poligon je enakokrak trikotnik.

3. Utež w1 lahko izračunamo, če poznamo kotα =∠b2b0b1, saj velja w1 = cosα.

Točka 1. je očitna, saj je krožnica poseben tip elipse, točka 2. pa velja, ker sta daljici AB in AC (glej sliko 12), ki ju določata tangenti na krožnico iz točke A, enako dolgi. Točko 3. pokažemo s pomočjo elementarne geometrije, trigonometrije in

Slika 12: Tangenti na krožnico iz dane točke porodita skladni daljici ABinAC. lastnosti racionalnih Bézierjevih krivulj. Dokaza tu ne navajamo, radovedni bralec lahko več o tem prebere v [5, poglavji 12.6 in 12.7]. Racionalna Bézierjeva krivulja v R2 bo predstavljala krožnico oz. krožni lok z enačbo (3.16), če bo polinomska Bézierjeva krivulja v R3, ki se vanjo preslika, ležala na stožcu, ki ima za osnovno ploskev enotsko krožnico s središčem v točki (0,0,1) v ravnini w = 1 in ima vrh v koordinatnem izhodišču – glej sliko 13. Enačba takega stožca je

x2+y2−w2 = 0, w∈[0,1]. (3.17) V nadaljevanju se posvetimo predstavitvi celotne krožnice. Očitno je, da z

raci-Slika 13: Stožec z osnovno ploskvijo v ravnini w = 1 in vrhom v koordinatnem izhodišču.

onalno Bézierjevo krivuljo stopnje 2 ne moremo predstaviti sklenjene krivulje. Da dobimo sklenjeno krivuljo morata namreč prva in zadnja kontrolna točka sovpadati in v primeru krivulje stopnje 2, bi bil tako kontrolni poligon kar daljica. Tudi kri-vulja stopnje 3 ne bo zadostovala. Spomnimo se definicije racionalne Bézierjeve krivulje kot projekcije polinomske Bézierjeve krivulje na ravnino w = 1. Naj bo p polinomska Bézierjeva krivulja stopnje 3 v R3 s kontrolnimi točkami b0,b1,b2 in b3, ki jo želimo preslikati v racionalno Bézierjevo krivuljo r stopnje 3 v R2 s kontrolnimi točkami b0,b1,b2 in b3, ki bi predstavljala krožnico. Da bo krivulja r predstavljala krožnico, mora krivulja p ležati na stožcu z enačbo (3.17). Kontrolni točki b0 in b3 krivulje r morata sovpadati, kar pomeni, da morata kontrolni točki b0 inb3 krivuljepležati na isti premici. Ker Bézierjeve krivulje interpolirajo svojo prvo in zadnjo kontrolno točko, to pomeni, da na stožcu ležita tudi točki b0 in b3. Ker ti dve točki ležita na isti premici, tangentni ravnini na stožec v teh dveh točkah sovpadata. Označimo to tangentno ravnino s π. Tudi tangentni premici na krivuljo p v točkah b0 in b3 ležita v ravnini π. Vemo, da na tangentni premici na krivuljo p v točki b0 leži tudi točka b1 in da na tangentni premici na krivuljo p v točki b3 leži tudi točka b2 (glej konec razdelka 2.2). Sledi, da vse kontrolne točke krivulje p ležijo v ravnini π. Ker Bézierjeva krivulja leži v konveksni ovojnici svojega kontrolnega poligona, v ravnini π leži tudi krivulja p. Krivulja p torej leži tako na stožcu kot v njegovi tangentni ravnini π, presek stožca in njegove tangentne ravnine pa je premica, torej p leži na premici. Vse točke na isti premici v R3 se na ravnino w= 1 preslikajo v isto točko. Tako dobljena racionalna Bézierjeva krivulja bi bila torej točka. Sledi, da z racionalno Bézierjevo krivuljo stopnje 3 ne moremo opisati celotne krožnice. Izkaže se, da je največji krožni lok, ki ga lahko predstavimo z racionalno Bézierjevo krivuljo stopnje 3, ki ima vse uteži pozitivne, velik 240o – glej [1].

Nadaljujmo s stopnjo 4. Izkaže se, da z racionalno Bézierjevo krivuljo stopnje 4 lahko opišemo celotno krožnico, a pri tem niso vse uteži pozitivne. V nadaljevanju

bomo opisali idejo dokaza, podrobnejšo izpeljavo pa bralec najde v [1]. Polinomska Bézierjeva krivulja stopnje4, ki se preslika v racionalno Bézierjevo krivuljo stopnje 4, ki predstavlja krožnico, mora zadoščati enačbi krivulje na stožcu (3.17) in enačbi polinomske Bézierjeve krivulje stopnje4, to je

p(t) =

4

∑︂

i=0

biBi4(t), (3.18)

kjer velja bi = (xi, yi, wi). Brez škode za splošnost lahko predpostavimo, da velja x0 =x4 = 1, y0 =y4 = 0in da sta utežiw0 inw4 enaki1. To nam da kontrolni točki b0 = (1,0,1) in b4 = (1,0,1). Za izračun ostalih točk enačbo krivulje (3.18) po komponentah vstavimo v implicitno enačbo (3.17). Dobljeno enačbo preoblikujemo v obliko

a1B18(t) +a2B28(t) +a3B38(t) +a4B48(t) +a5B58(t) +a6B68(t) +a7B78(t) = 0, kjer so koeficientiai, i= 1,2, . . . ,7, enaki

a1 =x1−w1, a2 = 1

7

(︁4x21+ 3x2+ 4y12−4w12−3w2)︁

, a3 = 1

7(6x1x2+x3+ 6y1y2−6w1w2−w3), a4 = 1

35

(︁18x22+ 16x1x3+ 18y22+ 16y1y3−18w22−16w1w3)︁

, a5 = 1

7(6x2x3+x1+ 6y2y3−6w2w3−w1), a6 = 1

7

(︁4x23+ 3x2+ 4y32−4w32−3w2)︁

, a7 =x3−w3.

V zgornji enačbi nastopajo le Bernsteinovi bazni polinomi B18, . . . , B78, saj sta koe-ficienta pri B08 in B88 zaradi fiksne izbire prve in zadnje kontrolne točke enaka nič.

Rešiti moramo sistem enačb ai = 0 za i = 1,2, . . . ,7. Iz a1 = 0 sledi x1 = w1, iz a7 = 0 pa sledi x3 =w3. Preostane nam 5nelinearnih enačb, iz katerih (s pomočjo programskega paketa Mathematica) dobimo5rešitev. Izkaže se, da so tri izmed do-bljenih rešitev neustrezne (vse kontrolne točke ležijo na isti premici ali pa sta druga in četrta kontrolna točka enaki). Rešitvi, ki sta ustrezni, sta simetrični in nam dolo-čata še drugo, tretjo in četrto kontrolno točko iskane polinomske Bézierjeve krivulje (3.18). Kontrolne točke te krivulje so tako

b0 = (1,0,1), (3.19)

b1 = (x1,±α, x1), (3.20) b2 =

(︃

−3w2−4x21+ 2 3 ,±4

3x1α, w2 )︃

, (3.21)

b3 = (−x1,∓α,−x1), (3.22)

b4 = (1,0,1), (3.23)

kjer je

α=

√︃3w2

2 −x21+1

2, (3.24)

x1 in w2 pa sta prosta parametra. Da bo α realno število, mora veljati

−1

Kontrolne točkebiin utežiwiracionalne Bézierjeve krivulje stopnje 4, ki predstavlja krožnico, dobimo tako, da prvi dve koordinati zgoraj dobljenih točk bi delimo z za-dnjo, le-ta pa predstavlja utež. Za uteži kontrolnih točkb1 inb3 racionalne krivulje tako velja w1 =−w3, kar pomeni, da je ena izmed teh dveh uteži negativna, ali pa sta obe enaki 0. Z racionalno Bézierjevo krivuljo stopnje 4 torej lahko predstavimo celotno krožnico, a pri tem ne velja, da so vse uteži pozitivne, zato preidemo na stopnjo 5.

Iskanja kontrolnih točk za krivuljo stopnje 5bi se lahko lotili na enak način kot za stopnjo 4, a obstaja krajša pot. Kontrolne točke ustrezne polinomske Bézierjeve krivulje stopnje 5 dobimo s pomočjo višanja stopnje Bézierjeve krivulje – glej [5, poglavje 6.1]. Postopka višanja stopnje do sedaj še nismo omenili. Ta postopek uporabimo, ko želimo krivuljo stopnjenzapisati kot krivuljo stopnjen+ 1. Krivulja se pri tem ne spremeni, le predstavljena je z eno kontrolno točko več kot prej.

Kontrolne točke b(1)i krivulje stopnje n+ 1 dobimo po formulah b(1)0 =b0,

kjer so bi kontrolne točke krivulje stopnje n. Kontrolne točke polinomske Bézier-jeve krivulje stopnje 5, ki se preslika v racionalno Bézierjevo krivuljo stopnje 5, ki predstavlja krožnico, dobimo tako, da na polinomski krivulji stopnje4s kontrolnimi točkami (3.19) – (3.23) izvedemo postopek višanja stopnje. Sledimo formulam (3.25) za n+ 1 = 5 in dobimo kontrolne točke

Da bodo vse uteži dobljene racionalne Bézierjeve krivulje pozitivne, morajo biti pozitivne vse tretje komponente zgoraj dobljenih kontrolnih točk, kar nam da pogoja

−1

4 < x1 < 1

4 in − 3

2w1 < x1 < 3

2w1. (3.32)

Za konec poglavja si oglejmo še primer.

Primer 3.6. Določimo kontrolne točke bi in utežiwi konkretne racionalne Bézier-jeve krivulje stopnje5, ki predstavlja celotno krožnico. Najprej določimo kontrolne točke bi ustrezne polinomske Bézierjeve krivulje, in sicer tako, da izberemo x1 = 0 in w2 = 13. Tako izbrani števili x1 in w2 ustrezata pogojema (3.32), zato bodo vse uteži pozitivne. Po formuli (3.24) izračunamo α = 1. Vsa tri števila vstavimo v enakosti (3.26) – (3.31) in dobimo

b0 = (1,0,1), b1 =

Ustrezne kontrolne točke racionalne Bézierjeve krivulje, dobljene s projekcijo poli-nomske Bézierjeve krivulje z zgornjimi kontrolnimi točkami, so tako

b0 = (1,0), b1 = (1,4), b2 = (−3,2), b3 = (−3,−2), b4 = (1,−4), b5 = (1,0), njene uteži pa so

w0 =w5 = 1 in w1 =w2 =w3 =w4 = 1 5. Opisana racionalna Bézierjeva krivulja je predstavljena na sliki 14.

4 Bézierjeve ploskve

Poznamo dva tipa Bézierjevih ploskev, to so Bézierjeve ploskve iz tenzorskega pro-dukta in trikotne Bézierjeve ploskve. V tem poglavju si bomo najprej ogledali poli-nomske Bézierjeve ploskve obeh tipov, nato pa še njihovo posplošitev na racionalne Bézierjeve ploskve.

Polinome ene spremenljivke lahko posplošimo na polinome dveh spremenljivk na dva načina. Pri tem dobimo dva vektorska prostora polinomov:

1. Vektorski prostor polinomov skupne stopnje ≤m+n, ki ga označimo z P2m,n :=

2. Vektorski prostor polinomov skupne stopnje ≤n, ki ga označimo z P2n:=

Izbira vektorskega prostora polinomov dveh spremenljivk tipa 1 vodi do Bézierjevih ploskev iz tenzorskega produkta, tipa 2 pa do trikotnih Bézierjevih ploskev. Bézier-jeve ploskve iz tenzorskega produkta definiramo nad pravokotniki v ravnini, trikotne Bézierjeve ploskve pa nad trikotniki v ravnini.

Slika 14: Racionalna Bézierjeva krivuljacstopnje5, ki predstavlja celotno krožnico.

4.1 Polinomske Bézierjeve ploskve

4.1.1 Bézierjeve ploskve iz tenzorskega produkta

Tenzorski produkt med dvema vektorskima prostoroma polinomov ene spremenljivke Pm =Lin{ui, i= 0,1, . . . , m} in Pn=Lin{vj, j = 0,1, . . . , n}

je vektorski prostor polinomov dveh spremenljivk

Pm⊗Pn =P2m,n =Lin{uivj, i= 0,1, . . . , m, j = 0,1, . . . , n}.

Parametrično ploskev imenujemo ploskev iz tenzorskega produkta, kadar imamo njeno parametrizacijo podano v bazi iz tenzorskega produkta.

Definicija 4.1. Bézierjeva ploskev iz tenzorskega produkta je parametrično podana ploskev p : [0,1]×[0,1]→R3, določena s predpisom

p(u, v) =

m

∑︂

n

∑︂bijBim(u)Bjn(v).

Točke bij imenujemo kontrolne točke. Če kontrolne točke ustrezno povežemo z da-ljicami, dobimo kontrolno mrežo, ki je v obliki strukture iz štirikotnikov.

Definirana ploskev p je sled polinomske Bézierjeve krivulje stopnje m, ki se giblje po prostoru in spreminja svojo obliko. V vsakem trenutku jo določajo kon-trolne točke, od katerih se vsaka giblje po svoji Bézierjevi krivulji. Za polinomsko Bézierjevo ploskev veljajo podobne lastnosti kot za polinomsko Bézierjevo krivuljo.

Označimo

Φij(u, v) = Bim(u)Bjn(v).

Velja:

• Φij(u, v)≥0za (u, v)∈[0,1]×[0,1], i= 0,1, . . . , m, j= 0,1, . . . , n.

• ∑︁m i=0

∑︁n

j=0Φij(u, v) = 1.

Polinomska Bézierjeva ploskev leži v konveksni ovojnici svoje kontrolne mreže. Ro-bne krivulje ploskve so polinomske Bézierjeve krivulje, določene s kontrolnimi toč-kami

b0j, j = 0,1, . . . , n, bi0, i= 0,1, . . . , m, bmj, j = 0,1, . . . , n, bin, i= 0,1, . . . , m.

Polinomske Bézierjeve ploskve interpolirajo svoje robne kontrolne točke:

p(0,0) = b00, p(1,0) = bm0, p(0,1) = b0n, p(1,1) =bmn.

Na sliki 15 je predstavljena Bézierjeva ploskev iz tenzorskega produkta stopnje3×3, to pomeni stopnje3 v vsaki izmed spremenljivk.

Slika 15: Bézierjeva ploskev iz tenzorskega produkta stopnje3×3in njena kontrolna mreža.

4.1.2 Bernsteinovi bazni polinomi dveh spremenljivk

V tem razdelku bomo definirali Bernsteinove bazne polinome dveh spremenljivk skupne stopnje ≤n. Potrebovali jih bomo za definicijo trikotnih Bézierjevih ploskev v naslednjem razdelku. Za domeno, nad katero bodo imeli ti polinomi podobne lastnosti kot v eni spremenljivki, bomo izbrali poljuben trikotnik T.

Definicija 4.2. Naj boT poljuben trikotnik v ravnini. Bernsteinovi bazni polinomi dveh spremenljivk stopnje n so definirani kot

Bijkn (u) = n!

i!j!k!uivjwk,

kjeru= (u, v, w)predstavlja baricentrične koordinate točke(x, y)glede na trikotnik T. Velja i, j, k ∈N0 ini+j+k=n.

Če je kakšen od indeksov i, j ali k negativen, je Bijkn ≡ 0. V definiciji smo uporabili baricentrične koordinate, ki smo jih definirali v razdelku 3.2.1. Definirajmo še nekaj oznak, ki jih bomo uporabljali v nadaljevanju:

• i= (i, j, k),

• |i|=i+j+k,

• u= (u, v, w),

• ui =uivjwk,

• u≥0, če so u, v, w ≥0,

• (︁n

i

)︁= i!j!k!n! ,

• e1 = (1,0,0),e2 = (0,1,0)in e3 = (0,0,1).

Bernsteinove bazne polinome iz zgornje definicije lahko s pomočjo novih oznak krajše zapišemo kot

Bin(u) = (︃n

i )︃

ui.

Polinomi Bin so za u ≥ 0 nenegativni. Tako kot polinomi ene spremenljivke tudi Bernsteinovi bazni polinomi dveh spremenljivk tvorijo particijo enote:

∑︂

|i|=n

Bin(u) = ∑︂

|i|=n

n!

i!j!k!uivjwk = (u+v+w)n = 1n = 1.

Za Bernsteinove bazne polinome dveh spremenljivk velja rekurzivna zveza Bni(u) =uBi−en−11(u) +vBi−en−12(u) +wBi−en−13(u), |i|=n.

Zgornjo zvezo pokažemo tako, da v definiciji Bernsteinovega baznega polinoma dveh spremenljivk upoštevamo zvezo

(︃n i

)︃

=

(︃n−1 i−e

)︃

+

(︃n−1 i−e

)︃

+

(︃n−1 i−e

)︃

.

4.1.3 Trikotne Bézierjeve ploskve

Baza prostora P2n, definiranega v (4.1), so monomi xiyj,0 ≤ i+j ≤ n. Določimo dimenzijo tega prostora. Monome uredimo, na primer leksikografsko:

1, x, y, x2, xy, y2, . . . , xnxn−1y, . . . , xyn−1, yn.

Monom stopnje 0 je eden, stopnje 1 sta dva (x in y), stopnje 2 trije (x2, xy in y2), itd. Monomov stopnjen jen+ 1. Dimenzijo prostora P2n lahko tako izračunamo kot vsoto prvih n+ 1 naravnih števil:

dimP2n= 1 + 2 + 3 +. . .+n+ 1 =

n+1

∑︂

i=1

i= (n+ 1)(n+ 2)

2 .

V prejšnjem razdelku smo definirali Bernsteinove bazne polinome dveh spremenljivk.

Naslednji izrek nam pove, da ti polinomi res predstavljajo bazo prostora P2n.

Izrek 4.3. Bernsteinovi bazni polinomi dveh spremenljivk Bin,|i| = n, tvorijo bazo prostora P2n.

Dokaza izreka ne navajamo, bralec ga najde v [8]. Sedaj smo pripravili vse potrebno za definicijo trikotne Bézierjeve ploskve oz. krpe.

Definicija 4.4. Trikotna Bézierjeva krpa stopnje n nad danim trikotnikom T, do-ločena s kontrolnimi točkami bi,|i|=n, je podana s parametrizacijo

p(u) = ∑︂

|i|=n

biBni(u),

kjeru= (u, v, w)predstavlja baricentrične koordinate točke(x, y)glede na trikotnik T.

Ker za baricentrične koordinate velja u+v +w = 1, lahko komponento w v trojici nadomestimo z 1−u−v. Baricentrične koordinate lahko tako zapišemo kar z dvojico (u, v). Zapišimo še definicijo regularne reparametrizacijske funkcije φ, ki poljuben domenski trikotnikT preslika na trikotnik△z oglišči(1,0),(0,1)in(0,0). Definicija 4.5. Naj bo △ trikotnik z oglišči (1,0),(0,1) in (0,0). Preslikava φ : T → △, ki trikotnik T bijektivno preslika na trikotnik △, je podana s predpisom

φ(x, y) = (u, v),

kjer sta u in v prvi dve baricentrični koordinati točke (x, y) ∈T glede na trikotnik T.

Regularna reparametrizacija φploskve p ne spremeni, zato lahko brez škode za splošnost predpostavimo, da domeno predstavlja trikotnik △=⟨(1,0),(0,1),(0,0)⟩

– slika 16. Glede na tak domenski trikotnik je parameter u z intervala [0,1], para-meterv pa z intervala[0,1−u]. Baricentrične koordinate točke (u, v)∈ △ glede na trikotnik△ so kar (u, v,1−u−v).

Slika 16: Domenski trikotnik△ z oglišči(1,0),(0,1)in (0,0).

Kontrolne točkebi=bijk trikotne Bézierjeve ploskve med seboj povežemo tako, da se sosednji kontrolni točki v vsakem izmed indeksovi, j ink razlikujeta za največ 1. Tako dobimo kontrolno mrežo, ki je v obliki strukture iz trikotnikov. Na sliki 17 je v 2D skicirana povezava med kontrolnimi točkami za n = 2. Ploskev stopnje 2

ima 3

∑︂

i=1

i= 3·4 2 = 6 kontrolnih točk.

Slika 17: Shematična predstavitev kontrolnih točk in kontrolne mreže trikotne Bé-zierjeve ploskve stopnje 2.

Za trikotno Bézierjevo krpo velja:

• Bézierjeva krpa leži v konveksni ovojnici svoje kontrolne mreže.

• Bézierjeva krpa interpolira svoje robne kontrolne točke:

p((1,0,0)) = ∑︂

|i|=n

bijk n!

i!j!k!1i0j0k =bn00,

p((0,1,0)) =b0n0 in p((0,0,1)) =b00n.

• Robne krivulje trikotne ploskve so Bézierjeve krivulje.

Na sliki 18 je predstavljena trikotna Bézierjeva krpa stopnje 2 skupaj s svojo kon-trolno mrežo.

Slika 18: Trikotna Bézierjeva krpa stopnje 2in njena kontrolna mreža.