CIS 736 (Computer Graphics) Lecture 10 of 30 - PowerPoint

Document Sample
CIS 736 (Computer Graphics) Lecture 10 of 30 - PowerPoint Powered By Docstoc
					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
Radi bi predstavili krivuljo (ploskev) za modeliranje objektov
    – kompaktna oblika
    – preprosto rokovanje
    – ni nujno, da poteka skozi točke
             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
                  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))
          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
                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, tedaj je (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.
            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
           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) = at2           in    y(t) = 2at
        Parametrične polinomske krivulje
Parametrično polinomsko krivuljo opišemo z




 Prednosti polinomskih krivulj:
    •    Enostavno računanje
    •    Neskončno diferenciabilno
                         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.
            Parametrične kubične krivulje
Običajno uporabljamo kubične parametrične polinome
   – enostavna uporaba
   – dobre lastnosti zveznosti




        p(u )  c0  c1u  c2u 2  c3u 3
                  3
                ci u   i

                 i 0
   Parametrične kubične krivulje

Splošna oblika:


        x(t )  a x t 3  bx t 2  c x t  d x
        y (t )  a y t 3  by t 2  c y t  d y
        z (t )  a z t 3  bz t 2  c z t  d z
             ax a y az 
             b b b 
        C
                           z
                                   T  [t 3 t 2 t 1]
                x      y

              cx c y cz 
                             
             
              dx d y dz     
        Q(t )  [ x(t ) y (t ) z (t )]  T  C  T  M  G
   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
       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




                                 3
                      p(u )   bi (u ) pi
                                i 0
               Mešalne funkcije ( nadaljevanje )

Primer mešalnih funkcij za interpolacijo krivulje

         3
p(u )   bi (u ) pi
        i 0



                          b0 (u )  1  5.5u  9u  4.5u
                                                    2       3


                           b1 (u )  9u  22.5u  13.5u
                                                2           3


                          b2 (u )  4.5u  18u 2  13.5u 3
                           b3 (u )  1u  4.5u 2  4.5u 3
Mešalne funkcije ( nadaljevanje )

  Mešalne funkcije za primer interpolacije

1.25
   1
0.75                                                                                        b0(u)
 0.5                                                                                        b1(u)
0.25                                                                                        b2(u)
    0                                                                                       b3(u)
-0.25
 -0.5
        0.00
               0.09
                      0.18
                             0.27
                                    0.36
                                           0.45
                                                  0.54
                                                         0.63
                                                                0.72
                                                                       0.81
                                                                              0.90
                                                                                     0.99
              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
            Linearna interpolacija
Linearna interpolacija, trikotniška osnova
                   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.
Kubična Hermitova interpolacija
Hermitova bazna matrika
Hermitove bazne funkcije
                   Bezierove krivulje

• Podobne Hermitovim, vendar bolj intuitivna definicija odvodov v
  končnih točkah
• Štiri kontrolne točke, od teh sta dve vozla (knots)
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
          Bezierove krivulje (3)

• Vrednosti odvodov Bezierove krivulje v vozlih so odvisne
  od sosednjih točk.

• Skalar 3 je uporabljen le za dano krivuljo
             Primerjava: Bézier : Hermite

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

•   Zamenjajmo to za prejšnji Hermite
               Bézier in matrična oblika

• Matrična oblika




• Toda zakaj je MBezier dobra bazna matrika?
              Bezierove mešalne funkcije

• Poglejmo mešalne funkcije

• Tej družini polinomov
  pravimo 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
               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;                     Koeficienti so
                                    Bernsteinovi polinomi
     allCurve[i].x = P[0].x*vvv +   in se jih da izračunati iz
                P[1].x*vvu +        binomske vrste (t + (1-
                P[2].x*vuu +        t)) na potenco n.
                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;
 }
                 Bernsteinovi polinomi

• Bezierove mešalne funkcije so posebna množica Bernsteinovih
  polinomov




                                                   n       n!
                                                    
                                                    k  k!(n  k )!
                                                    
              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
                                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.
Bezierjeve krivulje: Freehand
              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
Segmentne parametrične polinomske krivulje


Zamisel:
Uporabimo različne polinomske funkcije na različnih
delih krivulje

Prednost:
Fleksibilnost
Nadzor

Problem:
“Mehkost” (zveznost) na stikih
                              Zveznost
Zveznost Ck pomeni, da imata sosednji krivulji enak k-ti odvod v stičišču
                      Zveznost C0
Sosednji krivulji imata skupni končni točki
                      Zveznost C1

Sosednji krivulji imata skupno:

Skupni končni točki
Enaka odvoda
                          Zveznost C2

Sosednji krivulji imata:

   • Enaki končni točki
   • Enaka odvoda 1. reda
   • Enaka odvoda 2. reda
                  Zlepki (splines)


Funkcije ki interpolirajo/ aproksimirajo
   Filtriranje in rekonstrukcija slik
   Ključne in vmesne slike za animacijo
   Krivulje in ploskve za modeliranje
                     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     Raca (utež)
  točke




                                  Z racami oblikujejo krivulje
                      Tvorba zlepkov

•   C2 interpolirani zlepki      Mešalne funkcije
•   Hermite
•   Bezier
•   Catmull-Rom
•   B zlepki
           Zlepki z interpolacijo C2

Mešalne funkcije so izbrane tako da:
  •so kontrolne točke interpolirane
  •imajo sosednje krivulje zveznost C2
                    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- zlepki imajo segmente krivulj, katerih polinomski
  koeficienti so odvisni od le nekaj kontrolnih točk
   – Lokalen nadzor




                                                             Demo
                      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
            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




                p1        Q4   p2                 p
                                                  6
                                    Q5
                     Q3                  Q6
                               p3
           p0                             p
                                              p
                                          4
                                              5
          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-2 in pi+1
 – B-zlepek ne interpolira (se ne dotika) nobene od teh, pač pa
   aproksimira potek skozi pi-1 in pi




          p1        Q4   p2                    p
                                               6
                              Q5
               Q3                  Q6
                         p3
     p0                             p
                                           p
                                    4
                                           5
      Enakomerni kubični b-zlepki

Mešalne funkcije izberemo tako, da:
   • imamo kubične polinome
   • C2 zveznost
   • lokalni nadzor
   • točke niso nujno interpolirane
           Enakomerni kubični b-zlepki

V vsakem stičišču Ji trije pogoji zveznosti
   • Položaj dveh krivulj je pri Ji enak
   • Prvi odvodi obeh krivulj so enaki v Ji
   • Drugi odvodi so enaki v Ji

In veljati mora še lokalni nadzor
   • Na vsako stičišče vpliva majhna množica točk (4)
           Enakomerni kubični b-zlepki

• Aproksimacija z zlepki
• Aproksimiramo z n+1 kontrolnimi točkami
    – P0, P1, …, Pn, n ¸ 3
• Krivulja je predstavljena z n –2 kubičnimi polinomskimi segmenti
    – Q 3 , Q4 , … Qn

• t se vzdolž B-zlepka spreminja kot Qi: ti <= t < ti+1
• ti (i = integer) so vozliščne točke (knot points), ki povezujejo
  segmente Qi-1 in Qi
• Krivulja je enakomerna (uniform ), ker so vozli razporejeni v
  enakomernih intervalih parametra t
             Bazna matrika b-zlepkov

• Imamo16 enačb za reševanje 16 neznank
• 16 enačb vsiljuje zveznosti C0, C1 in C2 med stikajočimi se segmenti Q




                              1 3  3             1
                              3 6 3                
                                                    0
                           1
          M B  spline   
                           6  3 0  3              0
                                                    
                             1   4  1              0
                  b - zlepki

• Najbolj popularni zlepki
• Zveznost C0, C1, in C2
           b – zlepki in lokalnost točk
Spreminjanje ene kontrolne točke (v a) tvori krivuljo (b), ki je
spremenjena le v bližini spremenjene kontrolne točke
    Računanje točk vzdolž B zlepka
Točke vzdolž B- zlepka računamo enako kot pri Bezierovih krivuljah




              Qi t   UM B  Spline P



                               1 3  3               1  pi 
                               3 6 3                   p 
         
Qi t   t 3 t 2       t 1
                            1
                                
                            6  3 0  3
                                                       0  i 1 
                                                       0  pi  2 
                                                                
                              1   4  1                0  pi 3 
            Krivulje “Uniform B-Spline”
• Te krivulje so dobile ime po tem, ker so vse mešalne funckije
  enakomerne (uniform)
• Vsak segment krivulje, ki tvori poln B zlepek, potrebuje 4 kontrolne
  točke, ki jih spreminjajo 4 mešalne funkcije
• To pomeni, da lahko za definicijo krivulje uporabimo le rumeni segment
    – Na obeh koncih nimamo dovolj mešalnih funkcij
• To tudi pomeni, da krivulja ne bo šla čez nobeno od kontrolnih točk, tudi
  čez prvo in zadnjo ne (kot to velja na primer pri Bezieru)
    – Pri u=0 in u=1 imamo večkratne funkcije, različne od nič
          Krivulje “Uniform B-Spline”
• primer krivulje Uniform B-spline
    – M=8  9 kontrolnih točk, 6 segmentov krivulje
  Krivulje “Non-Uniform B-Spline”
• Največja razlika med “Uniform” in “Non-Uniform B-
  Splines” je v tem, da vse mešalne funkcije niso enake
• Imamo različne variacije mešalnih funkcij, ki mso vse
  nadzorovane z vrednostmi vozlov (knot values)
   – V podrobnosti vrednosti vozlov se ne bomo spuščali
• Mešalne funkcije lahko specificiramo tako kot silo na
  krivuljo, ki naj bi potekala med končnimi točkami, the
  blending function can be specified in such a way as
  force the (podobno Bézieru)
                       Racionalne krivulje
• Racionalna krivulja (rational curve) je definirana v 4D prostoru in
  projicirana v 3D prostor
• Glavni razlog za uporabo racionalnih krivulj je ta, da lahko tako
  določimo uteži na kontrolne točke (weights on the control points)
    – Če damo kontrolni točki večjo utež, se bo krivulja bolj potisnila proti tej
      kontrolni točki
• Lahko bi imeli Rational Bézier krivulje ali Rational B-Spline krivulje
    – Ali pa kakšne druge (Hermite, itd.)
                              NURBS
• NURBS pomeni Non-Uniform Rational B-Splines
• To je ena najbolj popularnih predstavitev krivulj, ki jo
  uporabljamo v CAD in grafiki, ker omogočajo:
   – Lokalni nadzor krivulje, če premikamo kontrolne točke (B-
     Spline)
   – Možnost prilagajanja mešalnih funkcij s premikanjem vrednosti
     vozlov ( “knot values”, Non-Uniform)
   – Možnost uteževanja kontrolnih točk (Rational)
   Nonuniform, Rational B-Splines (NURBS)

• To je v modelirnikih, kot je na primer Maya, naravni
  geometrijski element
• Modele tvorimo s ploskvami, ki so definirane s krivuljami
  NURBS in ne s poligoni
• NURBS so mehke
• NURBS so težavne za tvorbo ostrih oblik
                   NURBS – kontrolne točke
Ena ključnih lastnosti krivulj NURBS je, da njihovo obliko določa položaj kontrolnih točk, kot tiste na sliki,
imenovane Bi. Za večjo razpoznavnost smo jih črtkano povezali. Tem povezavam pravimo tudi kontrolni
poligon.
                                     Izračun




Funkcijo Ni,p(u), ki določa, kako močno vpliva kontrolna točka Bi na krivuljo v času u,
imenujemo bazna funkcija kontrolne točke Pi (Zato B v B-zlepkih pomeni bazni).




                                                        Slika prikazuje tipičen primer bazne
                                                        funkcije. Ob določenem času ima
                                                        maksimum, prej in kasneje pa gladko
                                                        narašča oz. pada.
                              Bazne funkcije




Ker ima vsaka kontrolna točka svojo bazno funkcijo, ima krivulja NURBS z recimo petimi kontrolnimi
točkami pet takih krivulj, ki vsaka zase pokrivajo svoj del krivulje (torej nek interval časa)
                NURBS – vozli (knots)

Opazimo, da imajo vse bazne funkcije enako obliko in da pokrivajo
enake intervale časa. Želeli pa bi, da bi kakšna točka vplivala dalj časa
kot druga in bolj močno kot kakšna druga. In prav to je pomen črk NU v
NURBS, ki pomenijo "non-uniform" (ne-enakomerno).

Problem rešimo tako, da definiramo množico točk, ki razdelijo čas na
intervale, ki jih nato uporabimo pri baznih funkcijah, da dosežemo
želen učinek.
S spreminjanjem relativne dolžine intervalov lahko spreminjamo čas
vpliva kontrolne točke. Točkam, ki označujejo intervale pravimo vozli
(knots).
NURBS – neenakomerne bazne funkcije
                   Definicija baznih funkcij

Sedaj smo pripravljeni, da definicijo krivulj NURBS izpopolnimo z bolj podrobno
definicijo baznih funkcij:




kjer je ui oznaka za i-ti vozel v vektorju vozlov.
Opazimo, da so funkcije pri večjih indeksih k (ki jim pravimo tudi red bazne funkcije)
zgrajene rekurzivno iz tistih nižjega reda. Če je k najvisji red bazne funkcije, ki sestavlja
krivuljo NURBS, pravimo, da je to krivulja NURBS reda k oziroma stopnje p-1. Na dnu
te hieararhije imamo funkcije reda 1, ki so enake 1, če je u med i-tim in (i+1) vozlom,
sicer pa enak 0.
                                              Rekurzija

•   Higher degree basis can be constructed
    from lower degree bases


                     t  ti                      ti  d 1  t
    N i ,d (t )              N i ,d 1 (t )                    N i 1,d 1 (t )
                  ti  d  ti                  ti  d 1  ti 1
                                                                                        Ni,3(t)
•   Ni,0(t) =
     1 if ti t < ti+1
     0 otherwise                                                                    Ni,2(t) Ni+1,2(t)

•   Non-uniform B-splines constructed using a                              Ni,1(t) Ni+1,1(t) Ni+2,1(t)
    systolic array

                                                                    Ni,0(t) Ni+1,0(t) Ni+2,0(t) Ni+3,0(t)
                                       Konvolucija

•   Let Ni,k = Nk(t – i)
     – Uniform case
     – Translates of the same basis
•   Then
     – Nk(t) = (Nk-1 * N1)(t)
     – N1(t) = {     1 if 0 t < 1,
                     0 otherwise}
•   N2(t) is piecewise quadratic
    Gaussian approximation
    consisting of three parabola
    segments
•   One more yields cubic B-spline basis
           NURBS - Racionalne funkcije

Spoznali smo pomen kontrolnih točk, vozlov in baznih funkcij in razumemo krivulje NUB
(nonuniform B-spline). Kaj pa pomeni tisti R v NURB? Čas je, da spregovorimo o
racionalnih krivuljah.


Krivulje, ki so tako definirane z utežjo za vsako kontrolno točko imenujemo racionalne
krivulje.
                 NURBS - pomen uteži
Nekateri programi zahtevajo za določanje krivulj NURB štiri-dimenzionalno
predstavitev tro-dimenzionalnih kontrolnih točk: {x, y, z, w} namesto {x, y, z}.
 Četrta koordinata w se obicajno nanaša na utež kontrolne točke. Navadno
 imajo vse točke utež 1.0, kar pomeni, da imajo vse enak vpliv na krivuljo.
 Če povečamo utež ene točke, ji tako damo večji vpliv na "vlečenje" krivulje
 proti tej točki.
                  Primerjava kubičnih krivulj
•   Hermitske
     – Združujejo 4 krivulje; brez CP; polna interpolacija; C1 in G1 z omejitvami; hitre
•   Bézierjeve
     – Konveksni CP, interpolirajo 2 od štirih kontrolnih točk; C1 in G1 z omejitvami;
       najhitrejše
•   B-zlepki
     – Uniformni, neracionalni
        • Konveksni CP, 4 točke, brez interpolacije; C2 in G2; srednje hitri
     – Neuniformni, neracionalni
        • Konveksni CP, 5 točk, " brez interpolacije”; “zmorejo” C2 in G2; počasni
     – Neuniformni, racionalni (NURBS)
        • Konveksni CP, 5 točk, " brez interpolacije”; racionalni; “zmorejo” C2 in G2;
          počasni
•   Beta zlepki (-Splines)
     – Konveksni CP; 6 kontrolnih točk (4 lokalne, 2 globalni); C1 in G2; srednje hitri
•   Catmull-Rom zlepki
     – Konveksni CP; interpolirajo ali aproksimirajo 4 točke na CP; C1 in G1; srednje
•   Kochanek-Bartels zlepki
     – Konveksni CP; interpolira 7 točk na CP; C1 in G1; srednje
   Tvorba krivulj z delitvijo (subdivision)

Kako lahko še naredimo “mehko” krivuljo?
      Interpolacija krivulj: rekurzivna delitev
                                P1                        P2




                      P0                                           P3
•   Intguitivna zamisel
     – Podano imamo
         • Krivuljo (Bézier ali eakomerni B zlepek), ki je definirana s pomočjo kontrolnih točk
           oziroma poligonov
         • 4 kontrolne točke P0, P1, P2, P3
     – Problem: ne moremo dobiti prave oblike krivulje (ni dovolj kontrolnih točk)
     – Rešitev: povečamo stopnjo polinomskih segmentov ALI dodamo kontrolne točke
     – Tehnika: rekurzivni algoritem poddelitve (cursive subdivision)
         • Dodamo kontrolne točke z rekurzivnim deljenjem obstoječih kontrolnih točk
         • Računamo kontrolne točke (CP) za levo krivuljo L0, L1, L2, L3, desno krivuljo R0, R1,
           R2, R3
         • Sustavimo se, ko je sprememba (odmik krivulje od kontrolnih točk) dovolj majhna
         • Namen: prikaz krivulje ALI pridobivanje novih kontrolnih točk za manipulacijo
                        algoritem deCasteljau
•   Rekurzivni poddelitveni algoritem za interpolacijo
•   Lastnosti
     – Poceni in hitra konvergenca
     – Primeren za vse zlepke s konveksnimi ovojnicami kontrolnih točk
•   Kdaj ga lahko uporabimo?
     – Pri enakomernih zlepkih (enakomerno razporejenih vozlih)
         • Vprašanje: Ali lahko podedelimo NURBS?              P1        P2
         • Odgovor: Da, z dodajanjem vozlov (drago)
     – Alternativni pristop: hierarhični B zlepki

                                                        P0                    P3

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:10
posted:10/5/2012
language:Croatian
pages:77