Zum Hauptinhalt springen

1.2.1 Geometrische Objekte

Punkte und Koordinaten​

Wir arbeiten im dd-dimensionalen euklidischen Raum Ed\mathbb{E}^d mit einem festen kartesischen Koordinatensystem mit Ursprung OO.

Punkte und Vektoren werden durch Koordinatentupel dargestellt:

p=(p1,…,pd),v=(v1,…,vd)∈Rd.p=(p_1,\dots,p_d),\quad v=(v_1,\dots,v_d)\in\mathbb{R}^d.

Ein Koordinatentupel pp kann man auch als Vektor vom Ursprung OO zum Punkt pp lesen (Ortsvektor).

Punkte ≠ Vektoren – affine Räume​

Kernaussage der Folie

Punkte und Vektoren sind verschiedene Objekte mit verschiedenen Eigenschaften. Weil beide als Koordinatentupel dargestellt werden, sehen sie in dieser Darstellung gleich aus.

Was ist der Unterschied?

  • Ein Punkt ist ein Ort („hier“).
  • Ein Vektor ist eine Verschiebung bzw. Richtung mit Länge („3 nach rechts, 2 nach oben“). Er hat keinen festen Ort.

Daraus ergeben sich die erlaubten Operationen in einem affinen Raum:

OperationErgebnisSinnvoll?
Punkt − PunktVektor (Verschiebung von einem Ort zum anderen)✔
Punkt + VektorPunkt (Ort verschieben)✔
Vektor ± VektorVektor✔
Zahl · VektorVektor✔
Punkt + Punkt–✘ hängt vom Ursprung ab
Zahl · Punkt–✘ hängt vom Ursprung ab

Warum ist Punkt + Punkt sinnlos? Verschiebt man den Ursprung, ändern sich die Koordinaten beider Punkte, und die Summe zeigt dann auf einen anderen Ort. Das Ergebnis ist also nicht geometrisch, sondern ein Artefakt des Koordinatensystems.

Was ist dann erlaubt? Affinkombinationen ∑iλipi\sum_i \lambda_i p_i mit ∑iλi=1\sum_i\lambda_i = 1. Die sind vom Ursprung unabhängig. Beispiel: der Mittelpunkt 12p+12q\tfrac12 p+\tfrac12 q, oder allgemeiner (1−λ)p+λq(1-\lambda)p+\lambda q. Genau so sind Strecken und Geraden unten definiert. (Ergänzung)

Beispiele für affine Räume (Tabelle der Folie)​

Die Folie zeigt, dass das Prinzip „Punkte und Differenzen davon“ überall vorkommt:

Beispiel„Punkte“„Vektoren“ (Differenzen)
Lineare GleichungssystemeLösungen von Ax=bAx=b (inhomogen)Lösungen von Ax=0Ax=0 (homogen)
DifferentialgleichungenLösungen der inhomogenen DGLLösungen der homogenen DGL
Polynomenormierte Polynome vom Grad nnPolynome vom Grad n−1n-1
MatrizenMatrizen mit Spur c≠0c\neq 0Matrizen mit Spur 00
Stochastikstochastische Matrizen / WahrscheinlichkeitsverteilungenMatrizen mit Zeilensumme 0 / Änderungen mit Summe 0
Zeit (Physik)Datum (dd/mm/yyyy)Dauer
Zeit (Informatik)ZeitstempelDauer
FarbraumFarbe als RGB-WertFarbänderung
VersionsverwaltungGit-CommitsPatches / Diffs
ZeigerarithmetikSpeicheradresseOffset

Zum Verstehen: Zwei Daten kann man nicht addieren („1. Mai + 3. Juni“ ist Unsinn), aber subtrahieren (ergibt eine Dauer), und Datum + Dauer ist wieder ein Datum. Genauso in C: ptr2 - ptr1 ist ein Offset (ptrdiff_t), ptr + offset ein Zeiger, aber ptr1 + ptr2 kompiliert nicht. Beim Beispiel LGS gilt: Die Differenz zweier Lösungen von Ax=bAx=b löst Ax=0Ax=0, und Lösung von Ax=bAx=b plus Lösung von Ax=0Ax=0 ist wieder eine Lösung von Ax=bAx=b.

Operationen auf Koordinatentupeln​

Für a,b∈Rda,b\in\mathbb{R}^d und λ∈R\lambda\in\mathbb{R}:

OperationDefinition
Additiona+b:=(a1+b1,…,ad+bd)a+b := (a_1+b_1,\dots,a_d+b_d)
Skalarmultiplikationλ⋅a:=(λa1,…,λad)\lambda\cdot a := (\lambda a_1,\dots,\lambda a_d)
Skalarproduktat⋅b:=a1b1+⋯+adbd=∥a∥⋅∥b∥⋅cos⁡∠(a,b)a^t\cdot b := a_1b_1+\dots+a_db_d = \lVert a\rVert\cdot\lVert b\rVert\cdot\cos\angle(a,b)
Euklidische Norm∥a∥:=(at⋅a)1/2=a12+⋯+ad2\lVert a\rVert := (a^t\cdot a)^{1/2} = \sqrt{a_1^2+\dots+a_d^2}
Kreuzprodukt (nur d=3d=3)Vektor senkrecht zu aa und bb mit ∥a×b∥=∥a∥⋅∥b∥⋅sin⁡∠(a,b)\lVert a\times b\rVert = \lVert a\rVert\cdot\lVert b\rVert\cdot\sin\angle(a,b)
Orthogonalitäta⊥b  ⟺  at⋅b=0a\perp b \iff a^t\cdot b = 0

Geometrische Bedeutung​

  • Skalarprodukt: misst, wie sehr zwei Vektoren in dieselbe Richtung zeigen. Positiv heißt Winkel <90°<90°, null heißt senkrecht, negativ heißt Winkel >90°>90°. Ist ∥b∥=1\lVert b\rVert=1, dann ist atba^t b die Länge der Projektion von aa auf bb.
  • Kreuzprodukt: Die Länge ∥a×b∥\lVert a\times b\rVert ist die Fläche des Parallelogramms, das aa und bb aufspannen. Die Richtung folgt der Rechte-Hand-Regel.

Das Kreuzprodukt in 2D (wichtig für Kapitel 2)​

Bettet man 2D-Vektoren als (ax,ay,0)(a_x,a_y,0) in 3D ein, zeigt a×ba\times b nur in zz-Richtung:

a×b=(0, 0, axby−aybx).a\times b = (0,\ 0,\ a_xb_y - a_yb_x).

Die Zahl axby−aybx=det⁡(axbxayby)a_xb_y-a_yb_x = \det\begin{pmatrix}a_x & b_x\\ a_y & b_y\end{pmatrix} hat zwei Bedeutungen:

  • Ihr Betrag ist die Parallelogrammfläche.
  • Ihr Vorzeichen sagt, ob bb gegen den Uhrzeigersinn (positiv, „links von aa“) oder im Uhrzeigersinn (negativ, „rechts von aa“) von aa aus liegt.

Daraus wird im nächsten Abschnitt der Orientierungstest, die zentrale Operation für konvexe Hüllen.

Beispiel: a=(1,0)a=(1,0), b=(0,1)b=(0,1) ergibt 1⋅1−0⋅0=1>01\cdot1-0\cdot0 = 1>0, also liegt bb links von aa (90° gegen den Uhrzeigersinn). ✔

Strecken und Geraden​

Gegeben zwei Punkte p≠qp\neq q:

  • Strecke (line segment): pq‾:={(1−λ)⋅p+λ⋅q∣λ∈[0,1]}\overline{pq} := \{(1-\lambda)\cdot p+\lambda\cdot q \mid \lambda\in[0,1]\}
  • Gerade (line): g:={(1−λ)⋅p+λ⋅q∣λ∈R}g := \{(1-\lambda)\cdot p+\lambda\cdot q \mid \lambda\in\mathbb{R}\}

Erklärung: (1−λ)p+λq=p+λ(q−p)(1-\lambda)p+\lambda q = p+\lambda(q-p) heißt: Starte bei pp und gehe das λ\lambda-fache des Vektors q−pq-p. Bei λ=0\lambda=0 ist man bei pp, bei λ=1\lambda=1 bei qq, bei λ=12\lambda=\tfrac12 in der Mitte. Für λ∈[0,1]\lambda\in[0,1] bleibt man zwischen pp und qq (Strecke), für beliebige λ\lambda läuft man über beide Enden hinaus (Gerade). Beides sind Affinkombinationen, die Koeffizienten summieren sich zu 1.

Zum Ausprobieren: Zieh pp und qq und verschiebe λ\lambda. Innerhalb von [0,1][0,1] bleibt xx auf der Strecke, sonst wandert es auf der Geraden darüber hinaus.

pqx
x = (1 − 0.35)·(4, 3) + 0.35·(10, 5) = (6.1, 3.7)
λ ∈ [0, 1] ⇒ x liegt auf der Strecke p̄q (und damit auch auf der Geraden). · p und q lassen sich ziehen.

Eine gerichtete Strecke pq⃗\vec{pq} hat zusätzlich eine Richtung von pp nach qq. Erst damit ergibt „links von pq⃗\vec{pq}“ einen Sinn.

Polygonzüge​

Ein Polygonzug (polygon chain) der Länge nn ist eine Folge von Strecken

p0p1‾, p1p2‾, …, pn−1pn‾,\overline{p_0p_1},\ \overline{p_1p_2},\ \dots,\ \overline{p_{n-1}p_n},

bei der jede Strecke dort beginnt, wo die vorige endet. Er wird durch die Eckenfolge p0,…,pnp_0,\dots,p_n beschrieben.

Ein Polygonzug heißt einfach, wenn er sich nicht selbst schneidet: Nicht benachbarte Strecken haben keinen gemeinsamen Punkt, benachbarte nur den gemeinsamen Eckpunkt.

Polygone​

Ein Polygonzug mit p0=pnp_0=p_n, also ein geschlossener Polygonzug, heißt Polygon. Ist der Zug einfach, spricht man von einem einfachen Polygon. Es teilt die Ebene in ein Inneres und ein Äußeres (Jordanscher Kurvensatz).

Die konvexe Hülle in 2D ist so ein einfaches Polygon, und zwar ein konvexes. Deshalb wird sie als geordnete Eckenliste ausgegeben.

BegriffBedingung
PolygonzugFolge verbundener Strecken
einfacher Polygonzugkeine Selbstschnitte
Polygongeschlossen: p0=pnp_0=p_n
einfaches Polygongeschlossen und ohne Selbstschnitte
konvexes Polygoneinfach und Inneres konvex (alle Innenwinkel ≤180°\le 180°)