Vorlesung ¢â‚¬â€Ct...

download Vorlesung ¢â‚¬â€Ct fik¢â‚¬“Computergrafik¢â‚¬“ T. Subdivision (Unterteilung)Subdivision (Unterteilung) Gegebenseiendie

If you can't read please download the document

  • date post

    02-Oct-2020
  • Category

    Documents

  • view

    0
  • download

    0

Embed Size (px)

Transcript of Vorlesung ¢â‚¬â€Ct...

  • (10) Splines

    Vorlesung C t fik“„Computergrafik“

    T. Grosch

  • Kurven: Motivation 1Kurven: Motivation 1

    Bisher haben wir die Objekte der Welt – oder genauerBisher haben wir die Objekte der Welt – oder genauer deren Oberflächen – durch Dreiecke bzw. Polygone angenähert.g Oftmals benötigt man aber kompliziertere Kurven oder Flächen

    Schriftzeichen Automobilbau

    T. Grosch - 2 -

  • Kurven: Motivation 2Kurven: Motivation 2 Gegeben ist eine Menge von Punkten (z B Messwerte)Gegeben ist eine Menge von Punkten (z.B. Messwerte)

    yvyv

    xvxv

    Interpolation Approximation

    T. Grosch - 3 -

  • KurvenbeschreibungKurvenbeschreibung Implizit

    yv

    Implizit

    xv r t

    222 ryx =+

    0222 + ryx (unbekannte Lösungsmenge)

    Explizit

    x0=−+ ryx

    Explizit

    (eingeschränkter Def.bereich)

    22 xry −±=

    Parametrisch

    ( ) ( ) ( ) ( ) ]2,0[,sin,cos π∈⋅=⋅= ttrtytrtx (flexibel und einfach handhabbar)

    ( ) ( ) ( ) ( ) ]2,0[,sin,cos π∈ttrtytrtx

    T. Grosch - 4 -

  • Simples Beispiel (2D)Simples Beispiel (2D)

    Lineare Interpolation zwischen 2 PunktenLineare Interpolation zwischen 2 Punkten, parametrische Darstellung

    ( ) ( ) ]1,0[,1 10 ∈⋅+−= tPtPttP

    1P

    )1( t

    t

    0P )1( t−

    )(tP

    T. Grosch - 5 -

  • Simple Beispiele (3D)Simple Beispiele (3D) Interpolation einer Fläche 01PInterpolation einer Fläche durch bilineare Patches

    Zuerst Interpolation über u

    01

    ( )′

    P ′′

    Dann über v

    11Pv ( ) ( ) 1101

    1000

    1 1

    PuPuP PuPuP ⋅+⋅−=′′ ⋅+⋅−=′

    Dann über v

    Z f t

    ( ) PvPvvuP ′′⋅+′⋅−= 1),( Zusammengefasst ( ) ( ) ( )

    ( ) ( ) 10 00

    1 11,

    ⋅−⋅+ ⋅−⋅−= Pvu PvuvuP

    00P 10PuP′ ( ) ( ) ( ) ( )

    2

    01

    11

    ]10[)(

    1

    ⋅⋅−+ ⋅⋅+

    vu

    Pvu Pvu

    ]1,0[),( ∈vu

    T. Grosch - 6 -

  • Subdivision (Unterteilung)Subdivision (Unterteilung) Gegeben seien die

    1P 2P1,1P Gegeben seien die Liniensegmente (rechts) Man unterteilt jede Kante ( B P P d P P ) B i 2 P

    P (z.B. P0P1 und P1P2) z.B. in 2 gleiche Teile Die neue Kante (P0 1P1 1) wird

    1,0P

    ( 0,1 1,1) ebenfalls in der Mitte unterteilt und ein neuer Punkt P generiert

    0P subdivide (rek, p0, p1, p2)P generiert

    Das ganze wird für die neuen Kanten rekursiv wiederholt.

    { if (rek >= max_rek) {

    Zeichne Linien (p0, p1, p2); Abbruch;

    Das Ergebnis ist eine geglättete Kurve

    ; } p01 = (p0+p1)/2.0; p11 = (p1+p2)/2.0; p = (p01+p11)/2.0 subdivide(rek+1 p0 p01 p);subdivide(rek+1, p0, p01, p); subdivide(rek+1, p, p11, p2);

    }

    T. Grosch - 7 -

  • Beispiel 1P 2P1,1P

    Beispiel

    1,0P P

    1. Rekursion:

    0P

    2P

    P 2P

    10P 1,1P

    1P

    P2 Rekursion:

    1P

    10P

    1,1P

    P

    0P 1,02. Rekursion:

    0P

    1,0P

    T. Grosch - 8 -

  • Wiederholte HalbierungWiederholte Halbierung

    Was passiert mit der Kurve, wenn wir die Kanten nicht halbieren sondern dritteln ?

    T. Grosch - 9 -

  • Halbierung/Drittelung ?Halbierung/Drittelung ?

    HalbierungHalbierung

    Drittelung di l i h K

    g …die gleiche Kurve

    T. Grosch - 10 -

  • Mathematisch: 1 RekursionMathematisch: 1. Rekursion

    1P 2P11P ( )1 PPP1P 2P1,1

    P

    ( )101,0 2 1 PPP +=

    1 1,0P

    P ( )211,1 2

    1 PPP +=

    0P ( )+= 1,11,02 1 PPP

    ⎟ ⎠ ⎞

    ⎜ ⎝ ⎛ ++⎟

    ⎠ ⎞

    ⎜ ⎝ ⎛ += 2110 2

    1 2 1

    2 1

    2 1

    2 1

    2 1 PPPP

    T. Grosch - 11 -

  • Mathematisch: 2 Rekursion (links)Mathematisch: 2. Rekursion (links) 2P1P( )1 PPP

    10P

    2

    bP 21P

    1( )

    ( )100

    1,00

    2 1

    2 1 2

    PPP

    PPPa

    ⎟ ⎠ ⎞

    ⎜ ⎝ ⎛ ++=

    +=

    P

    1,0

    aP 41P

    10 4 1

    4 3

    22

    PP +=

    ⎠⎝

    0P

    ( )+= 1 PPP b ( )211,02

    1 PPPb += ( )

    ⎟ ⎠ ⎞

    ⎜ ⎝ ⎛ ++++=

    +

    21010 8 1

    8 4

    8 3

    4 1

    4 3

    2 1 2

    PPPPP

    PPP ba

    ( ) 211010

    143 2 1

    2 1

    2 1

    2 1

    2 1

    2 1

    2 1

    2 1 PPPPPP ⎟

    ⎠ ⎞

    ⎜ ⎝ ⎛

    ⎟ ⎠ ⎞

    ⎜ ⎝ ⎛ ++⎟

    ⎠ ⎞

    ⎜ ⎝ ⎛ +++=

    ⎟ ⎠ ⎞

    ⎜ ⎝ ⎛ ++⎟

    ⎠ ⎞

    ⎜ ⎝ ⎛ += 2110 4

    1 4 3

    4 1

    4 1

    4 3

    4 3 PPPP210 8

    1 8 4

    8 3 PPP ++=

    T. Grosch - 12 -

  • Was sagt uns das ? ⎟⎠ ⎞

    ⎜ ⎝ ⎛ ++⎟

    ⎠ ⎞

    ⎜ ⎝ ⎛ += 211041

    131133 PPPPPWas sagt uns das ?

    PP PP

    ⎟ ⎠

    ⎜ ⎝

    ⎟ ⎠

    ⎜ ⎝ 211041 444444

    2P

    P

    1P 2P1P )1( t− t

    1,0P bP

    P

    21P )

    4 1( =tP

    t t

    aP 41P

    ) 4

    (

    )1( t−

    )1( t−

    0P 0P

    Durch diesen Rekursionsschritt erzeugen wir den gleichen Wert wie für t=1/4.

    T. Grosch - 13 -

  • Genauere BetrachtungGenauere Betrachtung

    ⎟ ⎞

    ⎜ ⎛

    ⎟ ⎞

    ⎜ ⎛

    ⎟ ⎞

    ⎜ ⎛ 1111111 2

    P1P ⎟ ⎠ ⎞

    ⎜ ⎝ ⎛ ++⎟

    ⎠ ⎞

    ⎜ ⎝ ⎛ +=⎟

    ⎠ ⎞

    ⎜ ⎝ ⎛ = 2110 2

    1 2 1

    2 1

    2 1

    2 1

    2 1

    2 1 PPPPtP

    ⎞⎛⎞⎛⎞⎛ 1311331 21 P

    43P

    ⎟ ⎠ ⎞

    ⎜ ⎝ ⎛ ++⎟

    ⎠ ⎞

    ⎜ ⎝ ⎛ +=⎟

    ⎠ ⎞

    ⎜ ⎝ ⎛ = 2110 4

    1 4 3

    4 1

    4 1

    4 3

    4 3

    4 1 PPPPtP

    Analog für 2 Rekursion (rechts): 41P

    21

    ⎟ ⎠ ⎞

    ⎜ ⎝ ⎛ ++⎟

    ⎠ ⎞

    ⎜ ⎝ ⎛ +=⎟

    ⎠ ⎞

    ⎜ ⎝ ⎛ = 2110 4

    3 4 1

    4 3

    4 3

    4 1

    4 1

    4 3 PPPPtP

    Analog für 2. Rekursion (rechts):

    0P ( )⎠⎝⎠⎝⎠⎝ 4444444 0 Verallgemeinerung liefert eine appoximierte Parameterkurve

    ( ) 00 PtP ==

    ( ) 21 PtP ==

    ( ) ( ) ( )( ) ( )( )2110 111 PtPttPtPtttP ⋅+⋅−⋅+⋅+⋅−−=

    T. Grosch - 14 -

  • Quadratische Bézier-KurvenQuadratische Bézier-Kurven

    Damit haben wir die quadratischen Bézier-KurvenDamit haben wir die quadratischen Bézier-Kurven hergeleitet. Prinzip:Prinzip:

    Gegeben sind 3 Punkte („Kontrollpunkte“) Damit haben wir ein einfaches Verfahren, wie eine parametrisierte Kurve durch die Punkte approximiert wird Die Kurve geht durch Anfangs- und Endpunkt

    ( ) ( ) ( )( ) ( )( )2110 111 PtPttPtPtttP ⋅+⋅−⋅+⋅+⋅−−=

    Umformung liefert:

    ( ) ( ) ( ) 2210 2 121 PtPttPttP ⋅+⋅−⋅⋅+⋅−=

    Standardform der quadratischen Bézier-KurvenStandardform der quadratischen Bézier Kurven

    T. Grosch - 15 -

  • GewichtungsfunktionenGewichtungsfunktionen ( ) ( ) ( ) 2210

    2 121 PtPttPttP ⋅+⋅−⋅⋅+⋅−=

    Für jeden Wert von t im Bereich [0,1] wird eindeutig i P kt P d fi i t

    1 ein Punkt P definiert „Abhängig vom Wert von t nimmt man ein bisschen von

    2t

    ( )tt 12

    ( )21 t−

    P0, von P1 und schließlich von P2“ Gewichtungsfunktionen

    ( )tt −⋅⋅ 12

    Gewichtungsfunktionen Positiv Summe der G f f

    t 0 1

    0 Gewichtungsfunktionen für jedes t gleich 1

    1

    T. Grosch - 16 -

  • InterpretationInterpretation

    Gewicht von P0 Gewicht von P2

    2P1P 1

    Gewicht von P0

    Gewicht von P1

    Gewicht von P2

    21P 43P 2t

    ( )12 tt

    ( )21 t−

    41P ( )212 tt −⋅⋅

    0P t

    0 1 0

    0 0 1

    ( ) ( ) ( ) 2210 2 121 PtPttPttP ⋅+⋅−⋅⋅+⋅−=

    T. Grosch - 17 -

  • Tangente an Start-/EndpunktTangente an Start-/Endpunkt

    PP( ) ( ) ( ) 22102 121 PtPttPttP ⋅+⋅−⋅⋅+⋅−= 2P1P

    ( ) ( ) ( ) 210 221212' PtPtPttP ⋅+⋅−⋅+⋅−⋅= (Tangenten hier aus Pl t ü d k

    :0t = 1t =

    Tangente in P0: Tangente in P2: Platzgründen zu kurz gezeichnet, in der Zeichnung soll nur die Richtung verdeutlicht

    d )

    ( ) ( )012' :0

    PPtP t

    −⋅= =

    ( ) ( )122' 1

    PPtP t

    −⋅= =

    0P werden ….)

    Ergebnis: die Richtungen der Tangenten an Start-/Endpunkt sind durch die Verbindungen erster/zweiter bzw. vorletzter/letzter Kontrollpunkt festgelegt.

    T. Grosch - 18 -

  • Eigenschaften der Bézier-KurvenEigenschaften der Bézier-Kurven 1 Konvexe Hülle PP1. Konvexe Hülle

    Die Kurve liegt innerhalb der konvexen Hülle der Kontrollpunkte

    2P1P

    Kontrollpunkte 2. Start-/Endpunkte

    … liegen auf der Kurve 3. Tangenten

    … an Start-/Endpunkten sind durch diesind durch die Verbindungen erster/zweiter bzw.