1 / 77

Krivulje

Krivulje. Uvod. “Gladke” krivulje so uporabne na mnogih področjih: Modeliranje realnih objektov Računalniško podprto načrtovanje (CAD) Fonti Predstavitve podatkov, grafi Risbe, skice. Problem #1. Tvoriti hočemo krivuljo (ploskev), ki poteka skozi množico točk. Problem #2.

dawson
Download Presentation

Krivulje

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Krivulje

  2. Uvod • “Gladke” krivulje so uporabne na mnogih področjih: • Modeliranje realnih objektov • Računalniško podprto načrtovanje (CAD) • Fonti • Predstavitve podatkov, grafi • Risbe, skice

  3. Problem #1 Tvoriti hočemo krivuljo (ploskev), ki poteka skozi množico točk

  4. Problem #2 • Radi bi predstavili krivuljo (ploskev) za modeliranje objektov • kompaktna oblika • preprosto rokovanje • ni nujno, da poteka skozi točke

  5. Tipi algebraičnih krivulj • Interpolacije • krivulja poteka skozi točke • primerno za znanstveno vizualizacijo in analizo podatkov • Aproksimacije • Točke nadzirajo obliko krivulje • primerno za geometrično modeliranje

  6. Predstavitve krivulj • eksplicitne • eno spremenljivko izrazimo z drugo. • 2D: y = cos(x) • 3D: y = cos(x) in z = sin(x) • Implicitne • funkcija vseh spremenljivk je enaka nič. • 2D: F(x,y) = x2+y3+6 = 0 • 3D: F(x,y,z) = x4+y3 +16 = 0 and y5+z+10 = 0 • Parametrične • x,y in z so funkcije parametra, ki se spreminja vzdolž nekega intervala. • 2D: P(t) = (x(t), y(t)) • 3D: Q(t) = (x(t),y(t),z(t))

  7. Eksplicitne predstavitve Eno spremenljivko izrazimo z drugo. 2D: y = cos(x) 3D: y = cos(x) in z = sin(x) • Deluje le za funkcije z enkratnimi vrednostmi • Z lahkoto ugotovimo, ali točka leži na krivulji • Odvisnost od koordinatnega sistema

  8. Implicitne predstavitve Funkcija vseh spremenljivk je enaka nič. 2D: x2+y3+6 = 0 3D: x4+y3 +16 = 0 and y5+z+10 = 0 • Deluje tudi za funkcije z večkratnimi vrednostmi • Z lahkoto ugotovimo ali točka leži na krivulji • Odvisnost od koordinatnega sistema • Delne krivulje terjajo dodatne omejitve • Z lahkoto ugotovimo notranjost/zunanjost krivulje: • če F(x,y,z) < 0, tedajje (x,y,z) znotraj krivulje • če F(x,y,z) > 0, tedaj je (x,y,z) izven krivulje • Ta lastnost je uporabna pri trdnih modelirnikih.

  9. Parametrične predstavitve x,y in z so vse funkcije parametra, ki se spreminja vzdolž intervala. 2D: P(t) = (x(t), y(t)) 3D: Q(t) = (x(t),y(t),z(t)) • Deluje s funkcijami z večkratnimi vrednostmi, ki se križajo • Neodvisno od koordinatnega sistema – enostavno za risanje • Na področjih z veliko ukrivljenostjo lahko postavimo več točk • Enostavno risanje delnih krivulj • Težko ugotovimo, ali točka leži na krivulji • Ta predstavitev je primerna za geometrično modeliranje

  10. Parametrične predstavitve • Premica • x(t) = Ax+(Bx-Ax)t in y(t) = Ay+(By-Ay)t • Krog • x(t) = cos(t) in y(t) = sin(t) • Elipsa • x(t) = W cos(t) in y(t) = H sin(t) • Hiperbola • x(t) = a sec(t) in y(t) = b tan(t) • Parabola • x(t) = at2in y(t) = 2at

  11. Parametrične polinomske krivulje Parametrično polinomsko krivuljo opišemo z • Prednosti polinomskih krivulj: • Enostavno računanje • Neskončno diferenciabilno

  12. Stopnja krivulje • Stopnja določa, kakšna je lahko oblika krivulje • Stopnja 1 (linearne) - črta • Stopnja 2 (kvadrične) – lahko en zavoj • Stopnja 3 (kubične) – lahko dva zavoja • Število kontrolnih točk je vedno stopnja + 1.

  13. Parametrične kubične krivulje • Običajno uporabljamo kubične parametrične polinome • enostavna uporaba • dobre lastnosti zveznosti

  14. Parametrične kubične krivulje Splošna oblika:

  15. Parametrične kubične krivulje • Zakaj kubične krivulje? • Polinomi nizkih redov omogočajo malo fleksibilnosti pri oblikovanju krivulje • Polinomi višjih redov lahko povzročijo nezaželene napake v krivulji in so računsko zahtevnejši • So najnižji red formul, ki omogočajo specifikacijo končnih točk in njihovih odvodov • Najnižji red, ki ni planaren v 3D

  16. Mešalne funkcije (Blending Functions) • Računanje statičnih koeficientov je v redu, radi pa bi bolj splošen pristop • Problem iskanja preprostih polinomov, ki bi jih lahko uporabili kot koeficiente

  17. Mešalne funkcije( nadaljevanje ) Primer mešalnih funkcij za interpolacijo krivulje

  18. Mešalne funkcije( nadaljevanje ) Mešalne funkcije za primer interpolacije

  19. Aproksimacijske krivulje • Obliko krivulje nadziramo s pozicioniranjem kontrolnih točk • Na voljo so različni tipi • Bezier • B-Splines • NURBS (Non-Uniform Rational B-Splines) • Na voljo tudi pri ploskvah

  20. Linearna interpolacija Linearna interpolacija, trikotniška osnova

  21. Kubične krivulje Kubične krivulje imajo štiri koeficiente. Če rišemo kubično krivuljo med dvema končnima točkama, nam ostaneta še dve točki, ki jih lahko poljubno spreminjamo. Z določanjem položaja in odvoda krivulje (določenega s puščicami) na teh dveh končnih točkah lahko povsem opišemo kubično krivuljo, ki zadošča tem pogojem.

  22. Kubična Hermitova interpolacija

  23. Hermitova bazna matrika

  24. Hermitove bazne funkcije

  25. Bezierove krivulje • Podobne Hermitovim, vendar bolj intuitivna definicija odvodov v končnih točkah • Štiri kontrolne točke, od teh sta dve vozla (knots)

  26. Bezierove krivulje (2) Po Bezieru je dodatna informacija o krivulji skrita v ostalih dveh točkah. Te štiri točke vsebujejo kontrolni poligon za Bezierovo krivuljo. Seveda pa so odvodi v končnih točkah funkcije teh točk. Demo

  27. Bezierove krivulje (3) • Vrednosti odvodov Bezierove krivulje v vozlih so odvisne od sosednjih točk. • Skalar 3 je uporabljen le za dano krivuljo

  28. Primerjava: Bézier : Hermite • Beziera lahko izrazimo s Hermitom • Opomba: to je le matrična oblika predhodnjih enačb

  29. Bézier : Hermite • Zamenjajmo to za prejšnji Hermite

  30. Bézier in matrična oblika • Matrična oblika • Toda zakaj je MBezierdobra bazna matrika?

  31. Bezierove mešalne funkcije • Poglejmo mešalne funkcije • Tej družini polinomovpravimo Bernsteinovi polinomi 3. reda • C(3, k) tk (1-t)3-k; 0<= k <= 3 • Vsi so pozitivni v intervalu [0,1] • Njihova vsota je enaka 1

  32. Primer kode za 2D prostor t = 0.0;    delta = 1.0/CURVEMAX;    for (i=0; i< CURVEMAX+1; i++) {       vvv = (1.0-t)*(1.0-t)*(1.0-t);       vvu = 3*(1.0-t)*(1.0-t)*t;       vuu = 3*(1.0-t)*t*t;       uuu = t*t*t;       allCurve[i].x = P[0].x*vvv +                        P[1].x*vvu +                        P[2].x*vuu +                        P[3].x*uuu;       allCurve[i].y = P[0].y*vvv +                        P[1].y*vvu +                       P[2].y*vuu +                        P[3].y*uuu;       t += delta;    } Koeficienti so Bernsteinovi polinomi in se jih da izračunati iz binomske vrste (t + (1-t)) na potenco n.

  33. Bernsteinovi polinomi • Bezierove mešalne funkcije so posebna množica Bernsteinovih polinomov

  34. Bezierove mešalne funkcije • Zato je vsaka točka na krivulji linearna kombinacija kontrolnih točk • Uteži kombinacije so vse pozitivne • Vsota uteži je enaka 1 • Zato je krivulja konveksna kombinacija kontrolnih točk

  35. Bezierove krivulje • Vedno hočemo ostati znotraj omejenega področja, ki je določeno s kontrolnimi točkami Primeri 2 dimenzionalnih Bezierovih krivulj, definiranih z dvema, tremi, štirimi in petimi kontrolnimi točkami. Kontrolne točke so povezane črtkano.

  36. Bezierjeve krivulje: Freehand

  37. Lastnosti Bezierovih krivulj • Razvili so ga projektanti pri Renault • Prednosti • krivulja, ki jo vsebuje konveksna lupina • Lahko rokovanje • Lahko upodabljanje • Slabosti • Slaba zveznost v končnih točkah • mišljeno pri povezovanju več Bezierovih zlepkov

  38. Segmentne parametrične polinomske krivulje Zamisel: Uporabimo različne polinomske funkcije na različnih delih krivulje Prednost: Fleksibilnost Nadzor Problem: “Mehkost” (zveznost) na stikih

  39. Zveznost Zveznost Ck pomeni, da imata sosednji krivulji enak k-ti odvod v stičišču

  40. Zveznost C0 Sosednji krivulji imata skupni končni točki

  41. Zveznost C1 Sosednji krivulji imata skupno: Skupni končni točki Enaka odvoda

  42. Zveznost C2 • Sosednji krivulji imata: • Enaki končni točki • Enaka odvoda 1. reda • Enaka odvoda 2. reda

  43. Zlepki (splines) • Funkcije ki interpolirajo/ aproksimirajo • Filtriranje in rekonstrukcija slik • Ključne in vmesne slike za animacijo • Krivulje in ploskve za modeliranje

  44. Zlepki - zgodovina • Načrtovalci uporabljajo “race” in trakove lesa (plines) za risanje krivulj • Leseni zlepki imajo zveznost drugega reda (second-order continuity) • ..in potekajo skozi kontrolne točke Raca (utež) Z racami oblikujejo krivulje

  45. Tvorba zlepkov • C2 interpolirani zlepki • Hermite • Bezier • Catmull-Rom • B zlepki Mešalne funkcije

  46. Zlepki z interpolacijo C2 • Mešalne funkcije so izbrane tako da: • so kontrolne točke interpolirane • imajo sosednje krivulje zveznost C2

  47. B zlepki (b splines)? • Bezierovi in Hermitovi zlepki imajo globalen vpliv • Delne Bezierove ali Hermitove funkcije ne vzpodbujajo zveznosti odvodov v stičnih točkah • Premik ene kontrolne točke vpliva na celotno krivuljo • B- zlepkiimajo segmente krivulj, katerih polinomski koeficienti so odvisni od le nekaj kontrolnih točk • Lokalen nadzor Demo

  48. Krivulje z B-zlepki • B-zlepki rešujejo dva glavna problema pri Bézierju: • Globalna kontrola kontrolnih točk • Odvisnost med stopnjo krivulje in številom kontrolnih točk • Uporabnik poda število kontrolnih točk in sistem avtomatsko konstruira nabor kubičnih krivulj, za katere velja C2 • To je podobno naboru združenih kubičnih Bézierovih krivulj • Združene kubične Bézier krivulje imajo lahko poljubno število kontrolnih točk in so še vedno kubične, vsaka kontrolna točka pa vpliva le lokalno • Vendar so B-zlepki C2 in nimajo omejitev na pozicijo kontrolnih točk, kot pri Bézier krivuljah

  49. Enakomerni kubični b-zlepki • Prvi segment krivulje, Q3, je določen s prvimi 4 kontrolnimi točkami • Zadnji segment krivulje, Qm, je določen z zadnjimi 4 kontrolnimi točkami: Pm-3, Pm-2, Pm-1, Pm • Vsaka kontrolna točka vpliva na 4 segmente krivulje p2 p6 p1 Q4 Q5 Q3 Q6 p3 p0 p4 p5

  50. Krivulja z B-zlepki (B-spline) • Začnemo z zaporedjem kontrolnih točk • Izberemo 4 iz sredine zaporedja(pi-2, pi-1, pi, pi+1) • Bezier in Hermite gresta med pi-2in pi+1 • B-zlepek ne interpolira (se ne dotika) nobene od teh, pač pa aproksimira potek skozi pi-1in pi p2 p6 p1 Q4 Q5 Q3 Q6 p3 p0 p4 p5

More Related