Mathematische Grundlagen, R1ex127-.45ex1275aume ... pilop/3D-basics_A.pdf¢  mensionalen...

Click here to load reader

download Mathematische Grundlagen, R1ex127-.45ex1275aume ... pilop/3D-basics_A.pdf¢  mensionalen Zahlenraum betrachtet

of 40

  • date post

    12-Sep-2019
  • Category

    Documents

  • view

    0
  • download

    0

Embed Size (px)

Transcript of Mathematische Grundlagen, R1ex127-.45ex1275aume ... pilop/3D-basics_A.pdf¢  mensionalen...

  • Seminar 3D-Grafik

    Mathematische Grundlagen, Räume, Koordinatensysteme, Projektionen

    Hermann Schwarz und Marko Pilop {hschwarz|pilop}@informatik.hu-berlin.de

    http://www.informatik.hu-berlin.de/∼pilop/3D-basics A.pdf

    WS 2002/2003 2004-06-21

    Humboldt-Universität zu Berlin

    Institut für Informatik

    {hschwarz|pilop}@informatik.hu-berlin.de http://www.informatik.hu-berlin.de/~pilop/3D-basics_A.pdf

  • Inhaltsverzeichnis

    1 Vektoren und Vektorräume 5

    2 Matrizen und Matrizenmultiplikation 7

    3 Objekte im 2- und 3-dimensionalen kartesischen Koordinatensystem 9

    3.1 Linien, Ebenen, deren Schnittpunkte und Schnittgeraden . . . 10

    3.2 Polygone und deren Flächeninhalte . . . . . . . . . . . . . . . . 14

    4 Geometrische Transformationen in 2D- und 3D-Koordinatensystem 16

    4.1 Translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    4.2 Skalierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    4.3 Rotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    5 Matrixdarstellung von Transformationen in homogenen Koordinaten 19

    5.1 Homogene Koordinaten . . . . . . . . . . . . . . . . . . . . . . 19

    5.2 Translation und Rotation . . . . . . . . . . . . . . . . . . . . . 19

    5.3 Skalierung, Spiegelung, Projektion und Scherung . . . . . . . . 20

    5.4 Verknüpfung von Transformationen . . . . . . . . . . . . . . . . 21

    5.5 Inverse Transformationen . . . . . . . . . . . . . . . . . . . . . 22

    6 Abstände 23

    6.1 Punkt - Ebene . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    6.2 Gerade - Ebene . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    6.3 Gerade - Gerade . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    7 Punkt-Tests 25

    7.1 Punkt im Rechteck . . . . . . . . . . . . . . . . . . . . . . . . . 25

    7.2 Punkt im Polygon . . . . . . . . . . . . . . . . . . . . . . . . . 25

    7.3 Punkt im Kreis . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    7.4 Punkt in einer Kugel . . . . . . . . . . . . . . . . . . . . . . . . 26

    3

  • 8 Koordinatentransformationen 28 8.1 Verschiedene Arten von Koordianten- bzw. Bezugssystemen . . 28

    8.1.1 Lokale Koordinaten . . . . . . . . . . . . . . . . . . . . 28 8.1.2 Welt-Koordinaten . . . . . . . . . . . . . . . . . . . . . 29 8.1.3 Kamera-Koordinaten . . . . . . . . . . . . . . . . . . . . 29 8.1.4 Bild-Koordinaten . . . . . . . . . . . . . . . . . . . . . . 29

    8.2 View Frustum . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 8.3 Koordinatentransformationen . . . . . . . . . . . . . . . . . . . 30

    8.3.1 Viewing-Pipeline . . . . . . . . . . . . . . . . . . . . . . 31

    9 Projektionen 33 9.1 Zentralprojektion . . . . . . . . . . . . . . . . . . . . . . . . . . 34 9.2 Punkt-Perspektiven . . . . . . . . . . . . . . . . . . . . . . . . 35

    9.2.1 Ein-Punkt-Perspektive . . . . . . . . . . . . . . . . . . . 35 9.2.2 Zwei-Punkt-Perspektive . . . . . . . . . . . . . . . . . . 35 9.2.3 Drei-Punkt-Perspektive . . . . . . . . . . . . . . . . . . 36

    9.3 Parallelprojektionen . . . . . . . . . . . . . . . . . . . . . . . . 36 9.3.1 Orthogonale Parallelprojektion . . . . . . . . . . . . . . 37 9.3.2 Risse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 9.3.3 Normalaxonometrische Projektionen . . . . . . . . . . . 38 9.3.4 Schiefwinklige Parallelprojektion (Oblique) . . . . . . . 39

    4

  • 1 Vektoren und Vektorräume

    Da die Objekte in der Computergrafik als Punktmengen im zwei- oder dreidi- mensionalen Zahlenraum betrachtet werden, für den die Gesetze der Vektor- bzw. der linearen Algebra gelten, machen wir zuerst eine kleine Einführung in die n-dimensionale Vektorräume (Euklidische Räume), Matrizen und geome- trische Objekte. Die mit der linearen Algebra eng verbundene analytische Geometrie wird uns hier mit der Berechnung der Flächeninhalte geometrischer Objekte und mit Lösungen anderer geometrischer Probleme mit Hilfe der Vektorrechnung be- kanntmachen.

    Ein Vektor x ist ein Element des n-dimensionalen Euklidischen Zahlenraums und wird durch reelwertige Koordinaten x1, ....., xn repräsentiert.

    Schreibweise als Spaltenvektor: xT =

    x1 x2 .

    .

    .

    xn

    Schreibweise als Zeilenvektor: x = (x1, ...., xn)

    Abgeschlossenheit bzgl. Multiplikation mit skalaren Größen und bzgl.Vektoraddition: x ∈ Rn, α ∈ R : α · x = (α · x1, α · x2, ..., α · xn) ∈ Rn

    x, y ∈ Rn x + y = (x1 + y1, x2 + y2, ..., xn + yn) ∈ Rn

    Linearkombination: ξ, x, y, z ∈ Rn, α, β, γ ∈ R ξ heisst Linearkombination von x, y, z, falls ξ = α · x + β · y + γ · z

    5

  • Lineare Unabhängigkeit: Sind wieder ξ, x, y, z Elemente eines Vektorraumes, heisst diese Menge linear unabhängig, falls keiner von ihnen als Linearkombination der anderen Vektoren darstellbar ist. Anderenfalls sind sie linear abhängig. Und im Falle linearer Abhängigkeit gibt es α, β, γ, δ ∈ R, so dass α · x + β · y + γ · z + δ · ξ = 0 - Nullvektor Im Falle linearer Unabhängigkeit gibt es solche skalaren Koeffizienten nicht.

    Skalarprodukt: x, y ∈ Rn

    x · y = n ∑

    i=1

    = xi · yi

    Geometrische Deutung des Skalarprodiktes: x · y =Länge des auf den Vektor y projizierten Anteils von x, multipliziert mit der Länge von y. y · x = analog. Folgerung: x, y ∈ Rn und x, y sind orthogonal zueinander ⇒ x · y = 0

    Länge oder Betrag eines Vektors: |x| = √x · x

    6

  • 2 Matrizen und Matrizenmultiplikation

    In der 3D-Programmierung hat jedes Objekt ein eigenes (lokales) Koordinaten- system. Das Objekt ist meistenes genau zentral Um dieses Koordinatensystem positioniert. Dabei besteht das Objekt nur aus Ortsvektoren (vom Koordina- tenursprung zu den Punkten des Objekts). Um dieses Objekt auf den Bild- schirm zu bringen, muss es erst verschoben, rotiert oder skaliert werden. Um diese Operationen zu berechnen, verwendet man Matrizen. Also können so- wohl geometrische Objekte als auch deren Transformationen durch Matrizen beschrieben werden. Ohne Matrizen müssten wir mehrere Formeln verwenden, um das Objekt rich- tig zu positionieren. Das würde Rechenzeit kosten. Wir erstellen zwar mehrere Matrizen um das Objekt zu bewegen, jedoch können wir diese miteinander multiplizieren und am Schluß bleibt nur noch eine einzige Matrix.

    Sei eine Matrix Am,n =

    a11 a12 ... a1n a21 a22 ... a2n . ... ... ...

    . ... ... ...

    . ... ... ...

    am1 ... ... amn

    Produkt einer Matrix Am,n mal Spaltenvektor x =

    x1 x2 .

    .

    .

    xn

    :

    7

  • Am,n ·

    x1 x2 .

    .

    .

    xn

    =

    z1 z2 .

    .

    .

    zm

    ,wobei zi = Am, · z = n ∑

    j=1

    ai,j · xj

    Produkt zweier Matrizen Am,n und Bn,k (Voraussetzung: Beide Matrizen aus dem selben Vektorraum, d.h. Anzahl der Spalten der ersten Matrix muss der Anzahl der Zeilen der zweiten Matrix gleich sein): Am,n · Bn,k = Cm,k , wobei die Komponenten ci,j der Matrix Cm,k Skalarprodukte der i-ten Zeile von A mit der j-ten Spalte von B sind:

    ci,j = n ∑

    l=1

    (ai,l · bl,j)

    Wichtige Eigenschaften der Matrix- und Vektormultiplikationen: Assziativität: A · (B · C) = (A · B) · C Kommutativität: A·B 6= B ·A - Matrixmultiplikation ist i.a. nicht kommutativ.

    8

  • 3 Objekte im 2- und 3-dimensionalen kartesischen Koordinatensystem

    Ein dreidimensionales, rechtshändiges (Reihenfolge x-y-z-Achse dem Uhrzeiger- sinn entgegengesetzt) kartesisches Koordinatensystem wird aufgespannt durch drei orthonormalen Einheitsvektoren:

    Die Punkte in diesem Raum werden durch Ortsvektore repräsentiert, die vom Koordinatenursprung zum jeweiligen Punkt p mit Koordinaten (px, py, pz) lau- fen. Mit Richtungsvektoren bezeichnet man die Differenzvektore zwischen zwei Orts- vektoren (Punkten).

    9

  • 3.1 Linien, Ebenen, deren Schnittpunkte und

    Schnittgeraden

    Mit Linearkombination von zwei Vektoren kann man eine unendlich ausgedehn- te Linie darstellen: Seien v (Ortsvektor) und d (Richtungsvektor) Vektore, dann wird so eine Linie durch l = v + λ · d; −∞ < λ < +∞ definiert

    Um eine begrenzte Linie darzustellen, brauchen wir zwei Ortsvektore, die diese Linie begrenzen. Sie kann dann