Bézierove krivulje. Fakulteta za matematiko in fiziko, Univerza v Ljubljani. MARS 2009, Koper, / 54

Σχετικά έγγραφα
Odvod. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 5. december Gregor Dolinar Matematika 1

Funkcijske vrste. Matematika 2. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 2. april Gregor Dolinar Matematika 2

Splošno o interpolaciji

Funkcije. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 21. november Gregor Dolinar Matematika 1

Funkcije. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 12. november Gregor Dolinar Matematika 1

Funkcije. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 14. november Gregor Dolinar Matematika 1

Zaporedja. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 22. oktober Gregor Dolinar Matematika 1

Odvod. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 10. december Gregor Dolinar Matematika 1

Funkcije več spremenljivk

Tretja vaja iz matematike 1

Osnove matematične analize 2016/17

KODE ZA ODKRIVANJE IN ODPRAVLJANJE NAPAK

Zaporedja. Matematika 1. Gregor Dolinar. Fakulteta za elektrotehniko Univerza v Ljubljani. 15. oktober Gregor Dolinar Matematika 1

IZPIT IZ ANALIZE II Maribor,

Diferencialna enačba, v kateri nastopata neznana funkcija in njen odvod v prvi potenci

matrike A = [a ij ] m,n αa 11 αa 12 αa 1n αa 21 αa 22 αa 2n αa m1 αa m2 αa mn se števanje po komponentah (matriki morata biti enakih dimenzij):

Integralni račun. Nedoločeni integral in integracijske metrode. 1. Izračunaj naslednje nedoločene integrale: (a) dx. (b) x 3 +3+x 2 dx, (c) (d)

1. Definicijsko območje, zaloga vrednosti. 2. Naraščanje in padanje, ekstremi. 3. Ukrivljenost. 4. Trend na robu definicijskega območja

Na pregledni skici napišite/označite ustrezne točke in paraboli. A) 12 B) 8 C) 4 D) 4 E) 8 F) 12

Matematika I (VS) Univerza v Ljubljani, FE. Melita Hajdinjak 2013/14. Pregled elementarnih funkcij. Potenčna funkcija. Korenska funkcija.

Gimnazija Krˇsko. vektorji - naloge

*M * Osnovna in višja raven MATEMATIKA NAVODILA ZA OCENJEVANJE. Sobota, 4. junij 2011 SPOMLADANSKI IZPITNI ROK. Državni izpitni center

DISKRETNA FOURIERJEVA TRANSFORMACIJA

Definicija. definiramo skalarni produkt. x i y i. in razdaljo. d(x, y) = x y = < x y, x y > = n (x i y i ) 2. i=1. i=1

Kotne in krožne funkcije

VARIACIJSKE SUBDIVIZIJSKE SHEME

Dragi polinom, kje so tvoje ničle?

Booleova algebra. Izjave in Booleove spremenljivke

Funkcije dveh in več spremenljivk

Delovna točka in napajalna vezja bipolarnih tranzistorjev

Iterativno reševanje sistemov linearnih enačb. Numerične metode, sistemi linearnih enačb. Numerične metode FE, 2. december 2013

Kontrolne karte uporabljamo za sprotno spremljanje kakovosti izdelka, ki ga izdelujemo v proizvodnem procesu.

13. Jacobijeva metoda za računanje singularnega razcepa

Kotni funkciji sinus in kosinus

MATEMATIČNI IZRAZI V MAFIRA WIKIJU

Interpolacija in aproksimacija funkcij

POLINOMI ČETRTE STOPNJE IN ZLATI REZ

vezani ekstremi funkcij

Osnove elektrotehnike uvod

M086 LA 1 M106 GRP. Tema: Baza vektorskog prostora. Koordinatni sustav. Norma. CSB nejednakost

SKUPNE PORAZDELITVE VEČ SLUČAJNIH SPREMENLJIVK

diferencialne enačbe - nadaljevanje

Del 5. Vektorske funkcije in funkcije več spremenljivk

Kvadratne forme. Poglavje XI. 1 Definicija in osnovne lastnosti

Enačba, v kateri poleg neznane funkcije neodvisnih spremenljivk ter konstant nastopajo tudi njeni odvodi, se imenuje diferencialna enačba.

1.4 Tangenta i normala

VEKTORJI. Operacije z vektorji

NEPARAMETRIČNI TESTI. pregledovanje tabel hi-kvadrat test. as. dr. Nino RODE

II. LIMITA IN ZVEZNOST FUNKCIJ

1. Trikotniki hitrosti

V tem poglavju bomo vpeljali pojem determinante matrike, spoznali bomo njene lastnosti in nekaj metod za računanje determinant.

- pravac n je zadan s točkom T(2,0) i koeficijentom smjera k=2. (30 bodova)

SEMINARSKA NALOGA Funkciji sin(x) in cos(x)

3. VAJA IZ TRDNOSTI. Rešitev: Pomik v referenčnem opisu: u = e y 2 e Pomik v prostorskem opisu: u = ey e. e y,e z = e z.

8. Diskretni LTI sistemi

Shefferjeva polinomska zaporedja

Afina in projektivna geometrija

Poglavje 7. Poglavje 7. Poglavje 7. Regulacijski sistemi. Regulacijski sistemi. Slika 7. 1: Normirana blokovna shema regulacije EM

Računalniško vodeni procesi I

Linearna algebra 2 prvi kolokvij,

1 Seštevanje vektorjev in množenje s skalarjem

Veleučilište u Rijeci Stručni studij sigurnosti na radu Akad. god. 2011/2012. Matematika. Monotonost i ekstremi. Katica Jurasić. Rijeka, 2011.

p 1 ENTROPIJSKI ZAKON

Domače naloge za 2. kolokvij iz ANALIZE 2b VEKTORSKA ANALIZA

3.1 Reševanje nelinearnih sistemov

Tabele termodinamskih lastnosti vode in vodne pare

Teorija grafov in topologija poliedrov

REˇSITVE. Naloga a. b. c. d Skupaj. FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Verjetnost 2. kolokvij 23.

Množico vseh funkcijskih vrednosti, ki jih pri tem dobimo, imenujemo zaloga vrednosti funkcije f. Oznaka: Z f

Analiza 2 Rešitve 14. sklopa nalog

1.(a) Kdaj ima A R 2 mero 0? (b) Naj bo D enotski krog in f : D R taka, da je f ds = 0. Kaj lahko rečeš o funkciji f?

Matematika 1 - vježbe. 11. prosinca 2015.

Državni izpitni center SPOMLADANSKI IZPITNI ROK *M * NAVODILA ZA OCENJEVANJE. Sreda, 3. junij 2015 SPLOŠNA MATURA

Univerza v Ljubljani Fakulteta za računalništvo in informatiko MATEMATIKA. Polona Oblak

Arjana Žitnik. Rešene naloge iz kolokvijev in izpitov pri predmetu

FAKULTETA ZA STROJNIŠTVO Matematika 4 Pisni izpit 22. junij Navodila

PARCIJALNI IZVODI I DIFERENCIJALI. Sama definicija parcijalnog izvoda i diferencijala je malo teža, mi se njome ovde nećemo baviti a vi ćete je,

Lastne vrednosti in lastni vektorji

CM707. GR Οδηγός χρήσης SLO Uporabniški priročnik CR Korisnički priručnik TR Kullanım Kılavuzu

Uporabna matematika za naravoslovce

Funkcija je predpis, ki vsakemu elementu x iz definicijskega območja D R priredi neko število f (x) R.

8. Posplošeni problem lastnih vrednosti

( x) ( ) dy df dg. =, ( x) e = e, ( ) ' x. Zadatak 001 (Marinela, gimnazija) Nađite derivaciju funkcije f(x) = a + b x. ( ) ( )

Državni izpitni center SPOMLADANSKI IZPITNI ROK *M * FIZIKA NAVODILA ZA OCENJEVANJE. Petek, 10. junij 2016 SPLOŠNA MATURA

Poliedri Ines Pogačar 27. oktober 2009

Numerično reševanje. diferencialnih enačb II

Vaje iz MATEMATIKE 2. Vektorji

( , 2. kolokvij)

Matematika 1. Gabrijel Tomšič Bojan Orel Neža Mramor Kosta

Osnove sklepne statistike

Funkcije dviju varjabli (zadaci za vježbu)

Matematika 1. Gabrijel Tomšič Bojan Orel Neža Mramor Kosta

5. PARCIJALNE DERIVACIJE

IZVODI ZADACI ( IV deo) Rešenje: Najpre ćemo logaritmovati ovu jednakost sa ln ( to beše prirodni logaritam za osnovu e) a zatim ćemo

Dodatna poglavja iz linearne algebre za 1. letnik finančne matematike na FMF. Primož Moravec

UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET SIGNALI I SISTEMI. Zbirka zadataka

Matematično modeliranje 3. poglavje Dinamično modeliranje: diferencialne enačbe, sistemi diferencialnih enačb

Osnovni primer. (Z, +,,, 0, 1) je komutativan prsten sa jedinicom: množenje je distributivno prema sabiranju

POROČILO. št.: P 1100/ Preskus jeklenih profilov za spuščen strop po točki 5.2 standarda SIST EN 13964:2004

IZVODI ZADACI (I deo)

Transcript:

1 / 54 Bézierove krivulje Emil Žagar Fakulteta za matematiko in fiziko, Univerza v Ljubljani MARS 2009, Koper, 18.8.2009

Slika: Prepoznate lik na sliki? 2 / 54

Slika: Kaj pa ta dva? 3 / 54

Slika: In te? 4 / 54

5 / 54 Vsebina 1 Ravninske parametrične krivulje 2 Ravninske Bézierove krivulje 3 de Casteljauov algoritem 4 Subdivizija 5 Zlepki 6 Drobtinica o ploskvah

6 / 54 Ravninske parametrične krivulje Funkcije (ene spremenljivke) dobro poznamo: f : [a, b] R, x f (x). Točka na grafu funkcije f je ( ) x, x [a, b]. f (x) Kaj pa če sta obe komponenti na grafu funkciji iste spremenljivke (parametra) t: ( ) x(t), t I R. y(t)

7 / 54 Predpisu r : I R 2, r(t) = ( ) x(t) y(t) rečemo ravninska parametrična krivulja ali natančneje parametrizacija krivulje r. Podobno lahko definiramo parametrično krivuljo v več dimenzijah: x 1 (t) r : I R d x 2 (t), r(t) =., d N. x d (t)

1 0.5 0 0.5 1 1.5 2 8 / 54 6.5 2 6.5 6 5.5 1.5 6 5.5 5 1 5 4.5 4 0.5 4.5 4 3.5 0 3.5 3 2.5 0.5 3 2.5 2 1 1.5 1 0.5 0 0.5 1 2 1.5 1 0.5 0 0.5 1 Slika: Graf parametrične krivulje x(t) = t 3 t + 1 in y(t) = 2 t 2 + 2 za t [ 1.5, 1.2] (levo) in grafa komponent (v sredini in desno).

Praktično so najpomembnejše parametrične krivulje, katerih komponente so polinomi: preprosta predstavljivost (seznam koeficientov), hitro računanje (denimo Hornerjev algoritem). Polinome pa lahko zapišemo v različnih bazah, na primer: standardna: ϕ j (x) = x j 1, j = 0, 1,..., n, Newtonova: ϕ 0 (x) = 1, ϕ j (x) = (x x 0 )(x x 1 ) (x x j 1 ), j = 1,..., n, Bernsteinova:... ϕ j (x) = ( ) n x j (1 x) n j, j = 0, 1,..., n, j 9 / 54

10 / 54 Tako lahko na primer polinom p(x) = 4 x 2 + 4 x + 1 zapišemo glede na pravkar predstavljene baze kot p(x) = 4 x 2 + 4 x + 1 ( ) ( ) 2 2 = 1 x 0 (1 x) 2 0 + 3 x 1 (1 x) 2 1 0 1 ( ) 2 + 1 x 2 (1 x) 2 2 2 = 1 1 8 (x 1) 4(x 1)(x 2).

11 / 54 Vsaka baza ima svoje prednosti in pomanjkljivosti. Za računalniško podprto geometrijsko oblikovanje (ang. Computer Aided Geometric Design, oz. na kratko CAGD) je pomembna predvsem Bernsteinova baza. Podobna področja so še CAD (Computer Aided Design), CAM (Computer Aided Manufacturing), CNC (Computer Numerical Control).

12 / 54 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Slika: Bazni Bernsteinovi polinomi stopnje 4 (B 4 0 rdeče, B4 1 zeleno, B 4 2 modro, B4 3 črno in B4 4 rožnato.

Ravninske Bézierove krivulje Neodvisno jih v drugi polovici 20. stoletja razvijeta P.E. Bézier 1 in P. de Casteljau 2. Temeljijo na Bernsteinovi bazi polinomov. Z razvojem računalnikov postanejo nesluteno uporabne. Dandanes so nepogrešljive v CAGD (animacije; avtomobilska, ladijska in letalska industrija;... ). Obstajajo številne posplošitve na ploskve in v več dimenzij. 1 Pierre Étienne Bézier, 1910-1999, francoski razvojni inženir pri Renaultu. 2 Paul de Faget de Casteljau, 1930-, francoski razvojni inženir v Citroënu. 13 / 54

Ravninske Bézierove krivulje Neodvisno jih v drugi polovici 20. stoletja razvijeta P.E. Bézier 1 in P. de Casteljau 2. Temeljijo na Bernsteinovi bazi polinomov. Z razvojem računalnikov postanejo nesluteno uporabne. Dandanes so nepogrešljive v CAGD (animacije; avtomobilska, ladijska in letalska industrija;... ). Obstajajo številne posplošitve na ploskve in v več dimenzij. 1 Pierre Étienne Bézier, 1910-1999, francoski razvojni inženir pri Renaultu. 2 Paul de Faget de Casteljau, 1930-, francoski razvojni inženir v Citroënu. 13 / 54

14 / 54 Izberimo zaporedje točk v ravnini {P j } n j=0 in definirajmo b(t) = n P j Bj n (t), t [0, 1], j=0 kjer so Bj n Bernsteinovi polinomi. Krivulji b rečemo ravninska Bézierova krivulja. Točkam {P j } n j=0 pravimo kontrolne točke, poligonu, ki ga določajo, pa kontrolni poligon.

15 / 54 Slika: ( Bézierova ) krivulja ( ) stopnje ( 4 ) (rdeče) ( s kontrolnimi ) ( točkami ) 0 1 3 2 4 P 0 =, P 0 1 =, P 2 2 =, P 1 3 =, P 0 4 =. 1

16 / 54 Bézierove krivulje imajo za oblikovanje nekaj pomembnih lastnosti: Prva in zadnja kontrolna točka sta interpolacijski b(0) = P 0, b(1) = P n. Tangentna vektorja na krivuljo v začetni in končni točki sta b (0) = n(p 1 P 0 ), b (1) = n(p n P n 1 ). Krivulja leži v konveksni ovojnici kontrolnih točk.

17 / 54 Če j-to kontrolno točko premaknemo za vektor v, se točke na krivulji premaknejo za B n j (t) v. Vsaka premica seka krivuljo kvečjemu tolikokrat kot kontrolni poligon. Afine transformacije lahko izvajamo le na kotrolnih točkah (uporabno recimo v PostScriptu)....

18 / 54 Slika: ( Premik ) tretje kontrolne točke Bézierove krivulje za vektor 1 v =. 1

Slika: Premica lahko seka krivuljo kvečjemu tolikokrat kot kontrolni poligon. 19 / 54

Slika: Rotacija Bézierove krivulje za 90 okrog prve kontrolne točke v pozitivni smeri. 20 / 54

Slika: Skaliranje Bézierove krivulje za faktor 2. 21 / 54

22 / 54 Osnovna naloga pri Bézierovih krivuljah je računanje točk na krivulji. Neposredni račun je na dlani: izberemo parameter t [0, 1] in izračunamo b(t) = n P j Bj n (t). j=0 Žal je tak način časovno prezahteven in nestabilen. Obstaja alternativa, de Casteljauov algoritem

23 / 54 de Casteljauov algoritem Oglejmo si primer: dane so kontrolne točke ( ) ( ) ( ) ( ) 0 1 3 2 P 0 =, P 0 1 =, P 2 2 =, P 1 3 =, P 0 4 = in parameter t = 3/4. 1. korak: definirajmo b 0 j := P j, j = 0, 1, 2, 3, 4. 2. korak: izračunajmo torej b 1 0 = b 1 j = (1 t) b 0 j + t b 0 j+1, j = 0, 1, 2, 3, ( ) 3/4, b 1 1 = 3/2 ( ) 5/2 b 1 2 = 5/4 ( ) 4 1 ( ) ( ) 9/4, b 1 7/2 3 =. 1/4 3/4

24 / 54 3. korak: izračunajmo torej b 2 0 = b 2 j = (1 t) b 1 j + t b 1 j+1, j = 0, 1, 2, ( ) 33/16, b 2 1 = 21/16 4. korak: izračunajmo ( ) 37/16 b 2 2 = 1/2 b 3 j = (1 t) b 2 j + t b 2 j+1, j = 0, 1, ( ) 51/16. 1/2 torej b 3 0 = ( ) 9/4, b 3 1 = 45/64 ( ) 95/32. 1/4

25 / 54 5. korak: izračunajmo torej Izkaže se, da je b 4 j = (1 t) b 3 j + t b 3 j+1, j = 0, b 4 0 = ( ) 357/128. 3/256 b(t) = b 4 0. Oglejmo si še grafični prikaz računanja:

26 / 54

27 / 54

28 / 54

29 / 54

30 / 54

31 / 54 Splošni de Casteljauov algoritem se torej glasi: Algoritem Podatki: P 0, P 1,..., P n R 2 in t [0, 1]. Definirajmo: b 0 j (t) = P j, j = 0, 1,..., n. Ponavljajmo: b k j (t) = (1 t) b k 1 j + t b k 1 j+1 (t), k = 1, 2,..., n, j = 0, 1,..., n k. Izhod: b n 0(t) je točka na Bézierovi krivulji pri parametru t.

32 / 54 Ponavadi vmesne točke de Casteljauovega algoritma zapišemo v tabelo: b 0 0 b 0 1 b 1 0 b 0 2 b 1... 1..... b n 1 0 b 0 n b 1 n 1 b n 1 1 b n 0 Če shranimo vse točke, potrebujemo tabelo dimenzije (n + 1) (n + 1) 2. Če nas zanima samo končna točka, je dovolj tabela dimenzije (n + 1) 2. Zakaj?

33 / 54 Subdivizija de Casteljauov algoritem pa je veliko več kot samo način izračuna točke na krivulji. Vmesne točke pri de Casteljauovem algoritmu podajo dodatno informacijo o krivulji. Vemo, da je b n 0 točka na krivulji, obenem pa dobimo še kontrolne točke dveh delov krivulje.

34 / 54 b 0 0 b 0 1 b 1 0... b 0 2 b 1 1..... b n 1 0 b 0 n b 1 n 1 b n 1 1 b n 0 Rdeče točke predstavljajo kontrolne točke dela krivulje na eni strani točke b n 0, rožnate pa kontrolne točke na drugi strani te točke. Oglejmo si že znani primer krivulje s kontrolnimi točkami ( ) 0 P 0 =, P 0 1 = ( 1 2 in izberimo t = 1/2. ), P 2 = ( 3 1 ), P 3 = ( 2 0 ), P 4 = ( 4 1 )

35 / 54

36 / 54

37 / 54

38 / 54

39 / 54

40 / 54

41 / 54

42 / 54 Povzemimo prednosti de Casteljauovega algoritma pred računanjem neposredno po formuli b(t) = n P j Bj n (t), t [0, 1], j=0 Hitrejši izračun. Enostavna implementacija. Stabilnost in manjše numerične napake. Možnost izvajanja subdivizije.

43 / 54 Zlepki Včasih želimo s krivuljo zadeti (interpolirati) nekaj predpisanih točk. To posredno lahko pomeni, da mora biti stopnja krivulje velika. Izkaže se, da je to lahko težava. Oglejmo si primer interpolacije točk na krivulji ( ) t r(t) = (1 + t 2 ) 1, t [ 5, 5].

44 / 54 5 4 3 2 1 0 1 2 3 4 5 5 4 3 2 1 0 1 2 3 4 5

45 / 54 5 4 3 2 1 0 1 2 3 4 5 5 4 3 2 1 0 1 2 3 4 5

46 / 54 5 4 3 2 1 0 1 2 3 4 5 5 4 3 2 1 0 1 2 3 4 5

47 / 54 5 4 3 2 1 0 1 2 3 4 5 5 4 3 2 1 0 1 2 3 4 5

48 / 54 Višanje stopnje polinomske krivulje ni rešitev. Interpolacijske točke radelimo na manjše skupine in jih interpoliramo s krivuljami nižje stopnje. Posamezne interpolacijske krivulje zlepimo zlepki. Poznamo veliko različnih zlepkov. Oglejmo si enega za prejšnji primer podatkov.

49 / 54 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 5 4 3 2 1 0 1 2 3 4 5

50 / 54 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 5 4 3 2 1 0 1 2 3 4 5

51 / 54 Tenzorski produkt Bézierovih krivulj Obstaja več posplošitev parametričnih krivulj na ploskve. Med najbolj preprostimi so tenzorski produkti Bézierovih krivulj. Ponovno jih definiramo s kontrolnimi točkami (kontrolno mrežo) in Bernsteinovimi polinomi.

52 / 54 Formalno jih definiramo takole: s(u, v) = m n P j,k Bj m (u) Bk n (v), u, v [0, 1], j=0 k=0 kjer so P j,k R 3 kontrolne točke, ki določajo kontrolno mrežo. Zanje veljajo podobne lastnosti kot za Bézierove krivulje. Še bolj uporabne pa so trikotne krpe.

53 / 54

54 / 54