Geometrické modelovanie plôch

    Podobne ako pri krivkách delíme plochy na analytické, interpolačné a aproximačné.

Analytický popis plôch

   Analyticky môžeme plochu zadať :

  • Implicitnef(x,y,z) = 0
  • Explicitne zadaná plocha je funkcia dvoch súradníc x a y :

  •   z = f(x,y)
  • Parametrické vyjadrenie je pre konštrukciu plochy najvýhodnejšie :

  •   x = x(u,v), y = y(u,v), z = z(u,v),
    kde parametre u∈<umin,umax> a v∈<vmin,vmax>
    Príklad:

     Majme guľovú plochu s polomerom r a stredom v bode (0,0,0).

  • Implicitne je zadaná rovnica guľovej plochy vzorcom :

  •  x2+y2+z2-r2 = 0.
     
  • Explicitneje zadan rovnica guovej plochy vzorcom :

  • z = (-1)* sqrt(x2+y2-r2).
     
  • Parametrick vyjadrenie guovej plochy je :

  • x= r. cos(u) . cos(v)
    y= r. sin(u) . cos(v)
    z= r. sin(v),

    kde u ∈<0,2 Π> a v∈<- Π/2, Π/2>.
     

    $$$APPLET

    Applet: Rôzne typy plôch, interakcia klavesy 1-5 voľba axonimetrie, 7 plus a 8 mínus jedna krivka

    Interpolačné plochy

        Interpolačné plochy sa používajú vtedy, ak máme dý systém  bodov alebo kriviek plochy a chceme určiť body plochy. Takto určená plocha môže byť určená systémom bodov alebo jedným či dvoma systémami kriviek tejto plochy.

        Záplatou rozumieme časť plochy ohraničenej 4 hraničnými krivkami. V prípade, že máme dané len 2 hraničné krivky a0(v) a a1(v), pre v Iv, zvyšné 2 chýbajúce nahradíme úsečkami. Najjednoduchší spôsob zadania záplaty je, ak spojíme úsečkou všetky zodpovedajúce body kriviek a0(v) a a1(v), pre v Iv. Takto je záplata pre v Iv a u∈<0,1> definovaná vzťahom :

       P(u,v) = a0(v)*(1-u) + a1(v)*u

        Skonštruujme  záplatu určenú 4 krivkami so spoločnými bodmi v rohoch. Protiľahlými stranami okraja záplaty nech sú krivky a0(v) a a1(v), resp. b0(u) a b1(u). Polohové vektory rohov záplaty označme P0,0 ,P0,1 ,P1,0a P1,1.

    Mapovacou maticou záplaty je :

        [ P0,0   a0(v)    P0,1  ]
    M = [ b0(u)  P(u,v)  b1(u) ],
        [ P1,0   a1(v)    P1,1   ]
    
    
    kde P(u,v) je polohový vektor všeobecného bodu záplaty.

        Pre jednoduchosť sa väčšinou volia parametre u a v ∈<0,1>.

    Bilineárna Coonsova záplata

       Je určená rovnicou :
    
              [ 1-v ]
    [ 1-u -1 u ] M [ -1 ] =0,
               [ v ]
    kde lineárne funkcie 1-u u a 1-vystupujú v úlohe tzv. blending
    (tmeliacich) funkcii a parametre  u v 
    ∈<0,1>.
    
    

    Coonsove záplaty

    Priamkové plochy (Pravítkové, vystužené; ruled, lofted)

       Tieto plochy sú základom plošného designu.

    $$$APPLET

    Applet: Coonsova záplata interakcia klavesy 1,2 3,4 5,6


    Aproximačné plochy

        Teória aproximačných plôch v geometrickom modelovaní je založená na podobných základoch ako teória aproximačných kriviek.

    Riadiaca sieť aproximačnej plochy je určená maticou M = [(m+1),(n+1)] riadiacich bodov definujúcej tvar siete (nazývame ich tiež uzlami siete).

        [ V0,0 V0,1 ... V0,m ]
        [ V1,0 V1,1 ... V1,m ]
    M = [ V2,0 V2,1 ... V2,m ]
        [ ... ... ... ... ]
        [ Vn,0 Vn,1 ... Vn,m ]

        Bézierova plocha pre riadiacu sieť M o rozmeroch (m+1) x (n+1) bodov je určená parametrickým vyjadrením:

    kde   sú Bernsteinove polynómy pre u a v ∈ < 0,1 >.
    .

    $$$APPLET

    Applet: Bézierova plocha, vyber myšou jeden z riadiacich
    bodov v ľavom hornom rohu a presun bodu: v smere osi x (q +, w -), osi y (e +, r
    -), osi z (t +, y -)

    $$$APPLET

    Applet Drawing point, in corner right bottom are co-ordinates current point. Author: Matej Hudak

    Bezier Applet

    Assignment of project: Bezier surface represented by java applet Bezier surfaces were first described in 1972 by the French engineer Pierre Bezier who used them to design automobile bodies. In my applet I defined 2 classes. First main class bezierApplet where I defined some buttons and actions. I?m using JButtons for better presentation. Second class is for calculations and drawing Bezier surface. There are some methods to care about points, drawing lines between points and shift with points. Algorithm created array of points which are control points to Bezier surface. Then it draws lines between points. I can change z axis of each point, and surface will be change too. I can change number of lines, zoom surface in and out. And I can rotate surface in 2 ways, so I can see Bezier in point of view which I want to see. I can also turn off or turn on render quality (RQ). I?m using render with ant aliasing and better render quality, also I?m using better quality of presentation points in space, and I?m calculating their color so it seems they are in 3D not just in 2D.

    Racionálna Bézierova plocha

        Je zovšeobecnením Bézierových kriviek, kde pre každý bod riadiacej siete pridávame váhovú hodnotu bodu wi,j (tj. aký veľký vplyv bude mať daný bod riadiacej siete na výslednú plochu). Pre každý bod riadiacej siete definujeme parameter váhy, ktorými môžeme ovplyvňovať tvar plochy bez zmeny polohy bodov riadiacej siete. Racionálna Bézierova plocha je definovaná nasledovne:



     

    B - splajnová plocha

        Nevýhodou Bézierových plôch je ich náročné nadväzovanie a skutočnosť, že pri zmene jednej hodnoty riadiaceho bodu sa zmení celá plocha. B-splajnové plochy sú zovšeobecnením Bézierových plôch. B-splajnové plochy sa oveľa ľahšie nadväzujú, a preto sú výhodnejšie na modelovanie objektov. Najdôležitejšou ich prednosťou je skutočnosť, že zmena jedného bodu riadiaceho bodu spôsobí len lokálnu zmenu B-splajnovej plochy.

    Copyright (c) 1999-2017 Juraj Štugel. www.netgraphics.sk