commit be9ee643098980041daafc80f341dfd5fa4c7376
parent e8ce38af917c94dee3fbaccd7212d9b3c6113470
Author: Orangerot <purple@orangerot.dev>
Date: Thu, 19 Jun 2025 21:09:50 +0200
feat(ggg): exam solutions for chapter 1+2
Diffstat:
| A | ggg/ggg-cards.typ | | | 1568 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
1 file changed, 1568 insertions(+), 0 deletions(-)
diff --git a/ggg/ggg-cards.typ b/ggg/ggg-cards.typ
@@ -0,0 +1,1568 @@
+#import "@preview/cetz:0.4.0"
+
+#set page(margin: 1cm, columns: 2)
+#set heading(numbering: "1.1")
+
+#set math.mat(delim: "[")
+#set math.vec(delim: "[")
+
+#let transpose(t)={
+ let output=t.at(0).zip(..t.slice(1))
+ output
+}
+
+#let card(
+ question: "",
+ answer: ""
+) = rect(width: 100%)[
+ #strong(question)
+
+ #answer
+]
+
+
+/*
+* Grundseite XY
+* X = Höhe
+* Y = Breite
+* Z = Tiefe
+* x ^ . z
+* | /
+* +---> y
+*/
+
+#let cube = (
+ points: (
+ (0,0,0), // 0
+ (1,0,0), // 1
+ (0,1,0), // 2
+ (1,1,0), // 3
+ (0,0,1), // 4
+ (1,0,1), // 5
+ (0,1,1), // 6
+ (1,1,1), // 7
+ ),
+ edges: (
+ (0,1, orange),
+ (0,2, orange),
+ (0,4),
+ (1,3, orange),
+ (1,5),
+ (2,3, orange),
+ (2,6),
+ (3,7),
+ (4,5),
+ (4,6),
+ (5,7),
+ (6,7)
+ )
+)
+
+#let house = (
+ points: (
+ (0.0, 0.0, 0.0), // 0
+ (0.0, 0.0, 0.5), // 1
+ (0.0, 1.0, 0.0), // 2
+ (0.0, 1.0, 0.5), // 3
+ (1.0, 0.0, 0.0), // 4
+ (1.0, 0.0, 0.5), // 5
+ (1.0, 1.0, 0.0), // 6
+ (1.0, 1.0, 0.5), // 7
+ (0.0, 0.5, 1.0),
+ (1.0, 0.5, 1.0)
+ ),
+ edges: (
+ (0,1, orange),
+ (0,2, orange),
+ (0,4),
+ (1,3, orange),
+ (1,5),
+ (2,3, orange),
+ (2,6),
+ (3,7),
+ (4,5),
+ (4,6),
+ (5,7),
+ (6,7),
+ // Roof
+ (1,8, orange),
+ (3,8, orange),
+ (5,9),
+ (7,9),
+ (8,9)
+ )
+)
+
+= Darstellende Geometrie
+== Der Satz von Pohlke
+#card(
+ question: [Wie lautet der Satz von Pohlke und wie lasst er sich anwenden?],
+ answer: [
+ Jedes Dreibein, das eine Ebene aufspannt, ist Parallelprojektion eines
+ gleichschenkligen orthogonalen Dreibeins im Raum.
+
+#cetz.canvas({
+ import cetz.draw: *
+ import cetz.matrix: *
+
+ for edge in cube.edges {
+ let transformation = transform-rotate-xz(75deg, -35deg)
+ let a = mul4x4-vec3(transformation, cube.points.at(edge.at(0)))
+ let b = mul4x4-vec3(transformation, cube.points.at(edge.at(1)))
+ // let a = cube.points.at(edge.at(0))
+ // let b = cube.points.at(edge.at(1))
+ line((a.at(0), a.at(1)), (b.at(0), b.at(1)), stroke: if (a.at(2) < 0 or
+ b.at(2) < 0) {gray} else {black})
+ }
+})
+])
+#card(
+ question: [Was sind Militar-, Kavalier-und KabinettProjektionen?],
+ answer: [
+ #table(columns: 3*(1fr,),
+ [Militar], [Kavalier], [Kabinett],
+ [
+#cetz.canvas({
+ import cetz.draw: *
+ import cetz.matrix: *
+
+ for edge in cube.edges {
+ let transformation = ((cos(45deg),cos(45deg),0),(sin(45deg),-sin(45deg),-1))
+ let a = mul-vec(transformation, cube.points.at(edge.at(0)))
+ let b = mul-vec(transformation, cube.points.at(edge.at(1)))
+ line(a,b, stroke: if (edge.len() > 2) {edge.at(2)} else {black})
+ }
+})
+ ],
+ [
+#cetz.canvas({
+ import cetz.draw: *
+ import cetz.matrix: *
+
+ for edge in cube.edges {
+ let transformation = ((1,0,cos(45deg)),(0,1,sin(45deg)))
+ let a = mul-vec(transformation, cube.points.at(edge.at(0)))
+ let b = mul-vec(transformation, cube.points.at(edge.at(1)))
+ line(a,b, stroke: if (edge.len() > 2) {edge.at(2)} else {black})
+ }
+})
+ ],
+ [
+#cetz.canvas({
+ import cetz.draw: *
+ import cetz.matrix: *
+
+ for edge in cube.edges {
+ let transformation = ((1,0,0.5 * cos(45deg)),(0,1,0.5 * sin(45deg)))
+ let a = mul-vec(transformation, cube.points.at(edge.at(0)))
+ let b = mul-vec(transformation, cube.points.at(edge.at(1)))
+ line(a,b, stroke: if (edge.len() > 2) {edge.at(2)} else {black})
+ }
+})
+ ]
+ )
+
+])
+== Orthogonale Projektionen
+#card(
+ question: [Was sind Othogonal-, isometrische und dimetrische Projektionen?],
+ answer: [
+ *Orthogonalprojektion:* Parallelprojektion, bei denen die Projektion-
+sstrahlen senkrecht zur Bildebene sind.
+
+ *isometrisch:* Orthogonalprojektion, bei der die Bildebene senkrecht zur
+ Raumdiagonalen ist.
+
+ *dimetrisch:* wie isometrisch, aber die tiefe ist nur 1/2
+])
+#card(
+ question: [Wie erkennt man, dass die Parallelprojektion des
+Einheitswürfels eine Orthogonalprojektion ist?],
+ answer: [
+
+])
+== Grund-und Aufriss
+#let scene(xy) = {
+ import cetz.draw: *
+ import cetz.matrix: *
+
+ let model = house
+
+ for edge in model.edges {
+ let a = vector.add(model.points.at(edge.at(0)), (0.3,0,0))
+ let b = vector.add(model.points.at(edge.at(1)), (0.3,0,0))
+ line(mul-vec(xy, a),mul-vec(xy, b), stroke: if (edge.len() > 2) {edge.at(2)} else {gray})
+ }
+ line(
+ mul-vec(xy, (0,-0.5,0)),
+ mul-vec(xy, (1,-0.5,0)),
+ mark: (end: "stealth"))
+ content((), $ x $, anchor: "west")
+ line(
+ mul-vec(xy, (0,-0.5,0)),
+ mul-vec(xy, (0,2,0)),
+ mark: (end: "stealth"))
+ content((), $ * (y) $, anchor: "west")
+ line(
+ mul-vec(xy, (0,-0.5,0)),
+ mul-vec(xy, (0,-0.5,1)),
+ mark: (end: "stealth"))
+ content((), $ z $, anchor: "south")
+ circle(
+ mul-vec(xy, (1.3,0,0.5)), radius: 0.08,
+ fill: white
+ )
+ content((rel: (0,0.3)), $mono(x)$)
+ circle(
+ mul-vec(xy, (1.3,0,0)), radius: 0.08,
+ fill: white
+ )
+ content((rel: (0,-0.3)), $mono(x')$)
+ circle(
+ mul-vec(xy, (0,0,0.5)), radius: 0.08,
+ fill: white
+ )
+ content((rel: (0,0.3)), $mono(x'')$)
+}
+#card(
+ question: [Was sind Grund- und Aufriss, Ordner und Rissachsen?],
+ answer: [#grid(columns: 2*(1fr,), align: center + horizon,
+cetz.canvas({
+ import cetz.draw: *
+ import cetz.matrix: *
+
+
+ // let transformation = transform-rotate-xyz(0deg, -20deg, 40deg)
+ let xy = ((cos(30deg),cos(30deg),0),(-sin(30deg),sin(30deg),1))
+ scene(xy)
+}),
+cetz.canvas({
+ import cetz.draw: *
+ import cetz.matrix: *
+
+ let model = house
+
+ let xy = ((0,1,0),(0,0,1))
+ for edge in model.edges {
+ let a = vector.add(model.points.at(edge.at(0)), (0,0,0))
+ let b = vector.add(model.points.at(edge.at(1)), (0,0,0))
+ line(mul-vec(xy, a),mul-vec(xy, b), stroke: if (edge.len() > 2) {edge.at(2)} else {gray})
+ }
+ circle(
+ mul-vec(xy, (1.3,0,0.5)), radius: 0.08,
+ fill: white
+ )
+ content((rel: (0,0.3)), $mono(x'')$)
+ line(
+ mul-vec(xy, (0,-0.5,0)),
+ mul-vec(xy, (0,-0.5,1)),
+ mark: (end: "stealth")
+ )
+ content((), $ z $, anchor: "south")
+ line(
+ mul-vec(xy, (0,-0.5,0)),
+ mul-vec(xy, (0,1.3,0)),
+ mark: (end: "stealth")
+ )
+ content((), $ * $, anchor: "west")
+ content((rel: (0,-.1)), $ y $, anchor: "north")
+ content((.6,1.2), [Aufriss])
+
+ /*
+ * Grundriss
+ */
+
+ let xy = ((0,1,0),(-1,0,0))
+ for edge in model.edges {
+ let a = vector.add(model.points.at(edge.at(0)), (0.3,0,0))
+ let b = vector.add(model.points.at(edge.at(1)), (0.3,0,0))
+ line(mul-vec(xy, a),mul-vec(xy, b), stroke: if (edge.len() > 2) {edge.at(2)} else {gray})
+ }
+ circle(
+ mul-vec(xy, (1.3,0,0.5)), radius: 0.08,
+ fill: white
+ )
+ content((rel: (0,0.3)), $mono(x')$)
+ line(
+ mul-vec(xy, (0,-0.5,0)),
+ mul-vec(xy, (1,-0.5,0)),
+ mark: (end: "stealth")
+ )
+ content((), $ x $, anchor: "north")
+
+ content((.6,-1.6), [Grundriss])
+
+ /*
+ * Seitenriss
+ */
+ let phi = 60deg
+ let margin = 1.3
+ let xy = ((sin(phi),cos(phi),0),(0,0,1))
+ let transform(v) = vector.add(
+ mul-vec(
+ ((cos(-phi),-sin(-phi)),(sin(-phi),cos(-phi))),
+ mul-vec(xy, vector.add(v, (-.5,-.5,margin)))
+ ),
+ (0.5,-.3 -.5)
+ )
+ for edge in model.edges {
+ let a = vector.add(model.points.at(edge.at(0)), (0,0,0))
+ let b = vector.add(model.points.at(edge.at(1)), (0,0,0))
+ line(transform(a),transform(b), stroke: if (edge.len() > 2) {edge.at(2)} else {gray})
+ }
+ let transform(v) = vector.add(
+ mul-vec(
+ ((cos(-phi),-sin(-phi)),(sin(-phi),cos(-phi))),
+ v
+ ),
+ (0.5,-.3 -.5)
+ )
+ line(transform((-1,margin)),transform((1,margin)))
+ content((), $ ** $, angle: -phi, anchor: "west")
+
+ content((2,1), [Seitenriss])
+})
+)
+$*$, $*$$*$: Rissachsen \
+Ordner
+])
+#card(
+ question: [Ein Punkt liege in einem durch Grund-und Aufriss
+bekannten Dreieck. Konstruieren Sie zum Aufriss des
+Punkts seinen Grundriss.],
+answer: [
+ Ziehe Geraden je von Ecke durch Punkt bis gegenüberliegende Kante.
+ Der Schnittpunkt teilt Kante in zwei Teilverhaltnisse.
+ Diese Teilverhaltnisse in Grundriss übertragen und Gerade von Schnittpunkt zu
+ Ecke ziehen. Schnittpunkt aller Geraden ist der Punkt im Grundriss.
+])
+== +5 (Spezielle) Seitenrisse
+#card(
+ question: [Wie konstruiert man einen Seitenriss?],
+ answer: [
+ Man schaut von Modell in Richtung Rissachse.
+])
+#card(
+ question: [Zeichnen Sie zum Grund-und aufriss eines Würfels einen
+Seitenriss, der eine der Würfel-Diagonalen in wahrer
+Länge zeigt.],
+ answer: [
+ Erster Seitenriss 45deg. Dann zweiten Seitenriss 45deg zum ersten
+ Seitenriss. Zeigt Raumdiagonale in wahrere länge.
+ ])
+== Kurven auf Flachen
+#card(
+ question: [
+Wie berechnet man die Tangentialebenen einer implizit
+gegebenen Flache?],
+ answer: [
+ $Delta F dot (y - x) = 0$ stellt die Tangentialebene von $cal(F)$ an der Stelle
+ $x$ dar. (Implizite Flächendarstellung $F(x) = F(x,y,z) = 0$)
+])
+#card(
+ question: [Was ist die Kontur und was gilt für eine Kurve, die die
+Kontur schneidet im Grundriss?],
+ answer: [
+ Wo $x(t)$ die Konturlinie kreuzt, berührt sie im Grundriss den Umriss.
+ Bei parallelem Licht teilt die Konturlinie die helle und die dunkle Seite
+ des Modells. Der Schatten = Silhoutte hat einen Umriss.
+])
+
+== Durchdringungen
+#card(
+ question: [Zeichnen Sie die Durchdringung von zwei Zylindern, deren
+Achsen, die sich im Allg. nicht schneiden, orthogonale
+Richtungen haben.
+],
+answer: [
+
+])
+
+= Affine Geometrie
+== Affine Raume und Koordinaten
+#card(
+ question: [Was sind ein affiner Raum, ein affines Koordinatensystem
+und affine Koordinaten?],
+ answer: [
+ Ein affiner Raum ist eine Punktmenge $cal(A)$ mit einem zugehörigen
+ Vektorraum $A$ und einer binären surjektiven Operation $-: cal(A) times
+ cal(A) -> A, (p,q) |-> q - p$
+
+ Ein affines Koordinatensystem besteht aus einem Ursprung $a in cal(A)$ und
+ einer Basis $a_1...a_n in A$. Bezüglich solch eines affinen
+ Koordinatensystems hat jeder Punkt $x in cal(A)$ eine eindeutige Darstellung
+ $x = a + a_1 x_1 + ... + a_n x_n$. Die Koeffizienten $x_i$ heißen affine
+ Koordinaten von $x$ bezüglich des affinene Systems $a a_1...a_n$ und bilden
+ den Koordinatenvektor $[x_1 ... x_n]^t$ des Punktes $x$.
+])
+
+== Baryzentrische Koordinaten
+#card(
+ question: [Was sind baryzentrische Koordinaten, Grundecke,
+erweiterte Koordinaten?],
+ answer: [
+ Zu einem Punkt $p = p_0 + a_1 x_1 + ... +
+ a_n x_n$ sind die Koeffizienten $x_0, ..., x_n$ die baryzentrischen
+ Koordinaten bezüglich des Grundecks $p_0 .. p_n$. Gleichzeitig erweitern sie
+ die affinen Koordinaten, sodass sich die Summe zu Eins ergänzt.
+ $
+ script("erweiterter \nKoordinatenvektor")
+ vec(1,p) = mat(1,...,1;p_0, ..., p_n) vec(x_0, x)
+ script("baryzentrischer \nKoordinatenvektor")
+ $
+])
+#card(
+ question: [Wie hängen baryzentrische und affine Koordinaten
+zusammen?],
+ answer: [
+ $
+ &p = \
+ &= p_0 + a_1 x_1 + ... + a_n x_n \
+ &= p_0 (1 - x_1 - ... - x_n) + (a + a_1) x_1 + ... + (a + a_n) x_n \
+ &= p_0 x_0 + ... + p_n x_n
+ $
+])
+#card(
+ question: [Was bedeuten baryzentrische Koordinaten bezüglich eines
+Dreiecks geometrisch?],
+ answer: [
+ #grid(columns: 2*(1fr,),
+ cetz.canvas({
+ import cetz.draw: *
+ import cetz.matrix: *
+ import calc: *
+
+ let a = (0,0)
+ let b = (3,0.5)
+ let c = (1.2,2)
+ circle(a, radius: 0, name: "a")
+ circle(b, radius: 0, name: "b")
+ circle(c, radius: 0, name: "c")
+ let transformation = transpose((a,b,c))
+ let bary(x) = mul-vec(transformation, vector.div(x, x.sum()))
+
+ line(
+ (bary: (a: 1, b: 0, c: 0)),
+ (bary: (a: 0, b: 1, c: 0)),
+ (bary: (a: 0, b: 0, c: 1)),
+ close: true
+ )
+
+ let p = (.28,.32,.5)
+
+ circle((bary: (a: .28, b: .32, c: .5)), radius: 0.08, fill: white)
+ content((rel: (angle: 20deg, radius: .2)), $p$, anchor: "north")
+ line((bary: (a: 1, b: 0, c: 0)), bary(vector.element-product(p, (0,1,1))))
+
+ line(bary((1,0,0)), bary(p), name: "line")
+ content(
+ ("line.start", 70%, "line.end"),
+ angle: "line.end",
+ padding: .05,
+ anchor: "south",
+ text($x_1 + x_2$, size: 7pt)
+ )
+ line(bary(p), bary(vector.element-product(p, (0,1,1))), name: "line")
+ content(
+ ("line.start", 30%, "line.end"),
+ angle: "line.end",
+ padding: .05,
+ anchor: "south",
+ text($: x_0$, size: 7pt)
+ )
+
+ line(bary((0,0,1)), bary(vector.element-product(p, (0,1,1))), name: "line")
+ content(
+ ("line.start", 50%, "line.end"),
+ angle: "line.end",
+ padding: .05,
+ anchor: "south",
+ text($x_1$, size: 7pt)
+ )
+ content(
+ ("line.start", 99%, "line.end"),
+ angle: "line.end",
+ padding: .05,
+ anchor: "south",
+ text($:$, size: 7pt)
+ )
+ line(bary(vector.element-product(p, (0,1,1))), bary((0,1,0)), name: "line")
+ content(
+ ("line.start", 50%, "line.end"),
+ angle: "line.end",
+ padding: .05,
+ anchor: "south",
+ text($x_2$, size: 7pt)
+ )
+
+ circle(("a"), radius: 0.08, fill: white)
+ content((rel: (angle: 20deg, radius: .2)), $p_0$, anchor: "north")
+ circle(("b"), radius: 0.08, fill: white)
+ content((rel: (angle: 20deg, radius: .2)), $p_1$, anchor: "south-west")
+ circle(("c"), radius: 0.08, fill: white)
+ content((rel: (angle: 20deg, radius: .2)), $p_2$, anchor: "south-west")
+ }),
+
+ cetz.canvas({
+ import cetz.draw: *
+ import cetz.matrix: *
+ import calc: *
+
+ let a = (0,0)
+ let b = (3,0.5)
+ let c = (1.2,2)
+ circle(a, radius: 0, name: "a")
+ circle(b, radius: 0, name: "b")
+ circle(c, radius: 0, name: "c")
+ let transformation = transpose((a,b,c))
+ let bary(x) = mul-vec(transformation, vector.div(x, x.sum()))
+
+ line(
+ (bary: (a: 1, b: 0, c: 0)),
+ (bary: (a: 0, b: 1, c: 0)),
+ (bary: (a: 0, b: 0, c: 1)),
+ close: true
+ )
+
+ let coord = (.28,.32,.5)
+ let p = vector.div(coord, coord.sum())
+
+ circle((bary(p)), radius: 0.08, fill: white)
+ content((rel: (angle: 20deg, radius: .2)), $p$, anchor: "north")
+
+ line(bary((p.at(0) + p.at(1),0,p.at(2))), bary((0,p.at(0) + p.at(1), p.at(2))), name: "line")
+ line(bary((p.at(0),0,p.at(1) + p.at(2))), bary((p.at(1),p.at(0) + p.at(2), 0)), name: "line")
+ line(bary((0,p.at(1),p.at(0) + p.at(2))), bary((p.at(2) + p.at(0),p.at(1), 0)), name: "line")
+
+ line(bary((1,0,0)), bary((p.at(2) + p.at(0),p.at(1), 0)), name: "line")
+ content(
+ ("line.start", 50%, "line.end"),
+ angle: "line.end",
+ padding: .05,
+ anchor: "north",
+ text($x_1 :$, size: 7pt)
+ )
+
+ line(bary((p.at(2) + p.at(0),p.at(1), 0)), bary((p.at(1),p.at(0) + p.at(2), 0)), name: "line")
+ content(
+ ("line.start", 50%, "line.end"),
+ angle: "line.end",
+ padding: .05,
+ anchor: "north",
+ text($x_2$, size: 7pt)
+ )
+
+ line(bary((p.at(1),p.at(0) + p.at(2), 0)), bary((0,1,0)), name: "line")
+ content(
+ ("line.start", 50%, "line.end"),
+ angle: "line.end",
+ padding: .05,
+ anchor: "north",
+ text($: x_0$, size: 7pt)
+ )
+
+ circle(("a"), radius: 0.08, fill: white)
+ content((rel: (angle: -20deg, radius: .2)), $p_0$, anchor: "north")
+ circle(("b"), radius: 0.08, fill: white)
+ content((rel: (angle: 20deg, radius: .2)), $p_1$, anchor: "south-west")
+ circle(("c"), radius: 0.08, fill: white)
+ content((rel: (angle: 20deg, radius: .2)), $p_2$, anchor: "south-west")
+ })
+ )
+])
+#card(
+ question: [Wie erhalt man die baryzentrischen Koordinaten des
+Höhenpunkts, des In-und Umkreismittelpunkts eines
+Dreiecks?],
+ answer: [
+ Umkreismittelpunkt:
+ $
+ m = (sans(a) sin(2 alpha) + ... + sans(c) sin(2 gamma)) / (sin(2 gamma) + ... + sin(2 gamma))
+ $
+
+ Inkreismittelpunkt
+ $
+ n = (sans(a) a + ... + sans(c) c) / (a + ... + c)
+ $
+
+ Höhenpunkt
+ $
+ h = (sans(a) tan(alpha) + ... + sans(c) tan(gamma)) / (tan(alpha) + ... + tan(gamma))
+ $
+])
+== Affinkombinationen
+#card(
+ question: [Was sind Affin-und Konvex-kombinationen?],
+ answer: [
+ Eine Affinkombinationen ist eine Summe
+ $
+ sans(p) &:= sum_(i=0)^m p_i omega_i \
+ &:= sans(p)_0 omega + (sans(p)_1 - sans(p)_0)omega_1 + ... +
+ (sans(p)_m - sans(p)_0) omega_m
+ $
+ $
+ omega = omega_0 + ... + omega_m = cases(1 "falls" sans(p) "ein Punkt", 0
+ "falls" sans(p) "ein Vektor")
+ $
+ Eine Affinkombinationen heißt Konvexkombination, falls
+ $
+ omega = 1 "und" forall i : omega_i >= 0
+ $
+])
+#card(
+ question: [Was sind konvexe Hüllen und Simplexe?],
+ answer: [
+ Die Menge aller Konvexkombinationen bildet die konvexe Hülle der Punktmenge
+ ${sans(p)_0, ..., sans(p)_m}$. Insbesonder heißt die konvexe Hülle eines
+ Grundecks $sans(p)_0...sans(p)_n$ Simplex und speziell für $n=1$ Strecke,
+ für $n=2$ Dreieck und für $n=3$ Tetraeder.
+])
+== Unterraume
+#card(
+ question: [Wie kann man affine Unterraume darstellen?],
+ answer: [
+ Die Lösung
+ $
+ n vec("", x, "") = vec("", b, "") + overbrace(mat(""; b_1, ..., b_r; ""),r) vec(y,"")r
+ $
+ eines inhomogenen linearen Gleichungssystems (LGS)
+ $
+ n-r overbrace(mat(""; "", A, ""; ""), n) vec("", x, "") = vec(a, "")
+ $
+ vom Rang $n-r$ stellt einen affinen Unterraum des $cal(A)^n$ der Dimension
+ $r$ dar. Der Parametervektor $y$ stellt $x$ bezüglich des
+ Unterraum-Koordinatensystems $sans(b)sans(b)_1...sans(b)_r$ dar.
+])
+#card(
+ question: [Was ist eine Hyperebene und wie stellt man sie mit
+baryzentrischen Koordinaten dar?],
+ answer: [
+ Eine Hyperebene ist ein (n-1)-dimensionaler Untervektorraum des $cal(A)^n$.
+ Sie hat eine Darstellung der Form $u(x) := u_1 x_1 + ... + u_n x_n + u_0 =
+ 0$.Aus dieser linearen Gleichung lässt sich leicht eine Darstellung in
+ baryzentrischen Koordinaten bezüglich der Punkte mit den erweiterten
+ Koordinatenvektoren $[1 1 0...0]^t, [1 0 1 0...0]^t, ..., [1 0...0 1]^t$
+ gewinnen. Sei $1 = x_0 + ... + x_n$. Dann ist
+$
+ u(x) &= u_0 ( x_0 + ... + x_n) + u_1 x_1 + ... + u_n x_n \
+ &= u_0 x_0 + (u_0 + u_1) x_1 + ... + (u_0 + u_n) x_n \
+ &= 0
+$
+])
+#card(
+ question: [Wie kann ein Würfel in 6 Simplexe gleichen Volumens
+zerlegt werden?],
+ answer: [
+ #grid(columns: 2*(1fr,),
+ [
+ $0 <= x <= y <= z <= 1$ \
+ $0 <= x <= z <= y <= 1$ \
+ $0 <= y <= x <= z <= 1$ \
+ $0 <= y <= z <= x <= 1$ \
+ $0 <= z <= x <= y <= 1$ \
+ $0 <= z <= y <= x <= 1$ \
+ ],
+ [
+ #cetz.canvas({
+ import cetz.draw: *
+ import cetz.matrix: *
+
+ let transformation = ((1,0,-0.5 * cos(45deg)),(0,1,0.5 * sin(45deg)))
+ for edge in cube.edges {
+ let a = mul-vec(transformation, cube.points.at(edge.at(0)))
+ let b = mul-vec(transformation, cube.points.at(edge.at(1)))
+ line(a,b, stroke: black)
+ }
+ line(
+ mul-vec(transformation, (0,0,0)),
+ mul-vec(transformation, (1,0,0)),
+ mul-vec(transformation, (1,1,1)),
+ mul-vec(transformation, (0,1,1)),
+ close: true,
+ stroke: green,
+ fill: green.transparentize(75%)
+ )
+ line(
+ mul-vec(transformation, (0,0,0)),
+ mul-vec(transformation, (0,1,0)),
+ mul-vec(transformation, (1,1,1)),
+ mul-vec(transformation, (1,0,1)),
+ close: true,
+ stroke: blue,
+ fill: blue.transparentize(75%)
+ )
+ line(
+ mul-vec(transformation, (0,0,0)),
+ mul-vec(transformation, (0,0,1)),
+ mul-vec(transformation, (1,1,1)),
+ mul-vec(transformation, (1,1,0)),
+ close: true,
+ stroke: red,
+ fill: red.transparentize(75%)
+ )
+ })
+ Einfache Freudenthal-Triangulierung
+ ]
+ )
+])
+== Gitter
+#card(
+ question: [Was kann ein regelmaBiges Dreiecksgitter in
+baryzentrischen Koordinaten beschrieben werden?],
+ answer: [
+ $
+ x = a alpha + b beta + c gamma
+ text("mit") 1 = alpha + beta + gamma
+ $
+ Die Isolinien $alpha = i, beta = j, gamma = k$ für $i, j, k in ZZ$ beschreiben
+ ein regelmaBiges Gitter.
+
+ #cetz.canvas({
+ import cetz.draw: *
+ import cetz.matrix: *
+ circle((0,0), radius: 0, name: "a")
+ circle((1,0), radius: 0, name: "b")
+ circle((cos(60deg),sin(60deg)), radius: 0, name: "c")
+
+ line((bary: (a: 2, b: -2, c: 1)), (bary: (a: 1, b: -2, c: 2)))
+ content((rel: (angle: -60deg, radius: -1.3), to: ()), $alpha = 1$, angle: -60deg, anchor: "west")
+ line((bary: (a: 2, b: -1, c: 0)), (bary: (a: 0, b: -1, c: 2)))
+ content((rel: (angle: -60deg, radius: -1.3), to: ()), $alpha = 0$, angle: -60deg, anchor: "west")
+ line((bary: (a: 2, b: 0, c: -1)), (bary: (a: -1, b: 0, c: 2)))
+ content((rel: (angle: -60deg, radius: -1.3), to: ()), $alpha = -1$, angle: -60deg, anchor: "west")
+ line((bary: (a: 1, b: 1, c: -1)), (bary: (a: -2, b: 1, c: 2)))
+ content((rel: (angle: -60deg, radius: -1.3), to: ()), $alpha = -2$, angle: -60deg, anchor: "west")
+ line((bary: (a: 0, b: 2, c: -1)), (bary: (a: -2, b: 2, c: 1)))
+ line((bary: (a: -1, b: 3, c: -1)), (bary: (a: -2, b: 3, c: 0)))
+
+ line((bary: (a: 1, b: -2, c: 2)), (bary: (a: -2, b: 1, c: 2)))
+ content((rel: (.1,0)), $gamma = 2$, anchor: "west")
+ line((bary: (a: 2, b: -2, c: 1)), (bary: (a: -2, b: 2, c: 1)))
+ content((rel: (.1,0)), $gamma = 1$, anchor: "west")
+ line((bary: (a: 2, b: -1, c: 0)), (bary: (a: -2, b: 3, c: 0)))
+ content((rel: (.1,0)), $gamma = 0$, anchor: "west")
+ line((bary: (a: 2, b: 0, c: -1)), (bary: (a: -2, b: 4, c: -1)))
+ content((rel: (.1,0)), $gamma = -1$, anchor: "west")
+
+
+ line((bary: (a: 2, b: -2, c: 1)), (bary: (a: 2, b: 0, c: -1)))
+ content((rel: (angle: 60deg, radius: -1.3), to: ()), $beta = 0$, angle: 60deg, anchor: "west")
+ line((bary: (a: 1, b: -2, c: 2)), (bary: (a: 1, b: 1, c: -1)))
+ content((rel: (angle: 60deg, radius: -1.3), to: ()), $beta = 1$, angle: 60deg, anchor: "west")
+ line((bary: (a: 0, b: -1, c: 2)), (bary: (a: 0, b: 2, c: -1)))
+ content((rel: (angle: 60deg, radius: -1.3), to: ()), $beta = 2$, angle: 60deg, anchor: "west")
+ line((bary: (a: -1, b: 0, c: 2)), (bary: (a: -1, b: 3, c: -1)))
+ content((rel: (angle: 60deg, radius: -1.3), to: ()), $beta = 3$, angle: 60deg, anchor: "west")
+ line((bary: (a: -2, b: 1, c: 2)), (bary: (a: -2, b: 4, c: -1)))
+
+ circle(("a"), radius: 0.08, fill: white)
+ content((rel: (angle: 20deg, radius: .2)), $a$, anchor: "south-west")
+ circle(("b"), radius: 0.08, fill: white)
+ content((rel: (angle: 20deg, radius: .2)), $b$, anchor: "south-west")
+ circle(("c"), radius: 0.08, fill: white)
+ content((rel: (angle: 20deg, radius: .2)), $c$, anchor: "south-west")
+ })
+])
+#card(
+ question: [Was ist die Coxeter-Freudenthal-KuhnTriangulierung?],
+ answer: grid(columns: 2, gutter: 10pt, [
+ #cetz.canvas({
+ import cetz.draw: *
+ import cetz.matrix: *
+
+ let perspective = ((1,0,cos(45deg)),(0,1,sin(45deg)))
+ for edge in cube.edges {
+ let a = mul-vec(perspective, cube.points.at(edge.at(0)))
+ let b = mul-vec(perspective, cube.points.at(edge.at(1)))
+ line(a,b, stroke: black)
+ }
+ let a = (0,0,0)
+ let b = (1,0,0)
+ let c = (0,0,1)
+ let d = (0,1,0)
+ let transformation = transpose((a,b,c,d))
+ let bary(x) = mul-vec(transformation, vector.div(x, x.sum()))
+
+ line(
+ mul-vec(perspective, bary((0,0,0,1))),
+ mul-vec(perspective, bary((0,0,1,0))),
+ mul-vec(perspective, bary((-1,1,1,0))),
+ mul-vec(perspective, bary((-1,1,0,1))),
+ fill: red.transparentize(70%),
+ stroke: red,
+ close: true
+ )
+ line(
+ mul-vec(perspective, bary((0,1,0,0))),
+ mul-vec(perspective, bary((0,0,1,0))),
+ mul-vec(perspective, bary((-1,0,1,1))),
+ mul-vec(perspective, bary((-1,1,0,1))),
+ fill: green.transparentize(70%),
+ stroke: green,
+ close: true
+ )
+ line(
+ mul-vec(perspective, bary((0,1,0,0))),
+ mul-vec(perspective, bary((0,0,1,0))),
+ mul-vec(perspective, bary((0,0,0,1))),
+ fill: blue.transparentize(70%),
+ stroke: blue,
+ close: true
+ )
+ line(
+ mul-vec(perspective, bary((-1,1,1,0))),
+ mul-vec(perspective, bary((-1,1,0,1))),
+ mul-vec(perspective, bary((-1,0,1,1))),
+ fill: blue.transparentize(70%),
+ stroke: blue,
+ close: true
+ )
+
+ circle(mul-vec(perspective, a), radius: 0.08, fill: white)
+ content((rel: (angle: 20deg, radius: .2)), $a$, anchor: "south-west")
+ circle(mul-vec(perspective, b), radius: 0.08, fill: white)
+ content((rel: (angle: 20deg, radius: .2)), $b$, anchor: "south-west")
+ circle(mul-vec(perspective, c), radius: 0.08, fill: white)
+ content((rel: (angle: 20deg, radius: .2)), $c$, anchor: "south-west")
+ circle(mul-vec(perspective, d), radius: 0.08, fill: white)
+ content((rel: (angle: 20deg, radius: .2)), $d$, anchor: "south-west")
+ })
+], [
+ Der Würfel links ist in sechs Tetraeder zerlegt. Unterteilt man alle Würfel
+ eines raumfüllenden regelmäßigen Würfelgitters parallel zu der links gezeigten
+ Unterteilung, erhält man die Coxeter-Freudenthal-Kuhn-Triangulierung des
+ Raums.
+]))
+== Affine Abbildungen
+#card(
+ question: [Was ist eine affine Abbildung und die ihr zugeordnete
+lineare Abbildung?],
+ answer: [
+ Eine Abbildung $Phi: cal(A) -> cal(B)$ zwischen affinen Räumen heißt affin,
+ wenn sie alle Affinkombinationen invariant lässt, d.h. wenn sie mit
+ Affinkombinationen vertauschbar ist: $Phi(sum sans(p)_i x_i) = sum(Phi
+ sans(p)_i) x_i$
+
+ $
+ Phi(sans(x)) = Q bb(x) &:= sans(q)_0 x_0 + ... + sans(q)_n x_n \
+ &= sans(q)_0 + (sans(q)_1 - sans(q)_0) x_1 + ... +
+ (sans(q)_n - sans(q)_0) x_n \
+ &=: sans(b) + B sans(x)
+ $
+
+ Die Abbildung $phi(sans(v)) = B sans(v)$ ist die $Phi$ zugeodnete lineare
+ Abbildung $sans(A) -> sans(B)$ für $sans(v) = sans(y) - sans(x),
+ Phi(sans(y)) - Phi(sans(x)) = B sans(v)$
+])
+#card(
+ question: [Wie lassen sich beide mit baryzentrischen Koordinaten
+und Matrizen beschreiben?],
+ answer: [
+ Der Vektor $sans(v)$ hat den baryzentrischen Koordinatenvektor $bb(v) =
+ bb(y) - bb(x)$. Somit haben die affine Abbildung $Phi$ und die zugeodnete
+ lineare Abbildung $phi$ bezüglich baryzentrischen Koordinaten die gleiche
+ Matrixdarstellung:
+ $
+ Phi(sans(x)) = Q bb(x) = mat(sans(q)_0,...,sans(q)_n) bb(x)\
+ phi(sans(v)) = Q bb(v) = mat(sans(q)_0,...,sans(q)_n) bb(v)
+ $
+])
+== Parallelitat und Teilverhaltnisse
+#card(
+ question: [Wie sind Parallelitat und Teilverhaltnisse definiert?],
+ answer: [
+ Zwei affine Unterräume $cal(U) = sans(p) + sans(U)$ und $cal(V) = sans(q) +
+ sans(V)$ der $cal(A)^n$ heißen parallel, falls $sans(U) subset sans(V)$ oder
+ $sans(V) subset sans(U)$. Die linearen Räume $sans(U)$ und $sans(V)$ heißen
+ auch Richtungen der affinen Unterräume.
+
+ Zwei Strecken $sans(a b)$ und $sans(c d) subset cal(A)^n$ heißen parallel,
+ wenngilt
+ $
+ sans(d) - sans(c) = (sans(b) - sans(a)) rho, rho in bb(R) \{0}
+ $
+
+ Sind Strecken parallelr, schreiben wir auch
+ $
+ (sans(d) - sans(c)) / (sans(b) - sans(a)) := rho
+ $
+ wobei der Faktor $rho$ das Teilverhältnis der beiden Strecken ist.
+])
+== Verallgemeinerte baryzentrische Koordinaten
+#card(
+ question: [Was sind verallgemeinerte baryzentrische Koordinaten
+und wie lassen sie sich alle darstellen?],
+ answer: [
+ Sei $sans(p_1 ... p_n)$ ein nicht-degeneriertes Polygon $cal(P)$ im
+ $cal(A)^2$.
+ $
+ sans(p) = sum sans(p)_i sans(v)_i "und"
+ 1 = sum sans(v)_i
+ $
+ heißen die $v_i$ verallgemeinerte baryzentrische Koordinaten von
+ $sans(p)$ bezüglich $cal(P)$. Sie bilden einen verallgemeinerten
+ baryzentrischen Koordinatenvektor $bb(v) = [v_1 ... v_n]^t$.
+])
+== Wachspresskoordinaten
+#card(
+ question: [Was sind die Wachspresskoordinaten und welche
+Eigenschaften haben sie?],
+ answer: [
+ $a_i := det mat(1,1,1;sans(p), sans(p)_i, sans(p)_(i+:))$ und
+ $d_i := det mat(1,1,1; sans(p)_(i-z),sans(p)_i,sans(p)_(i+1))$
+
+ Wachspresskoordinaten $omega_i := lambda_i / (sum_j lambda_j)$ wobei
+ $lambda_j = d_j / (a_i a_(i-1))$
+
+ Die Wachspresskoordinaten kann man als Affinkombinationen der $sans(b)_i$
+ darstellen. Bemerkenswerterweise gilt für der Wachspresskoordinatenvektoren
+ $bb(w) = [omega_1 ... omega_n]^t$, dass $[sans(b)_1 ... sans(b)_n] bb(w) =
+ bb(w)$. Somit ist $bb(w)$ ein Eigenvektor der Matrix $B = [sans(b)_1 ...
+ sans(b)_n]$ zum Eigenwert 1.
+
+])
+== Mittelwertkoordinaten
+#card(
+ question: [Was sind die Mittelwertkoordinaten und wo sind sie alle
+positiv?],
+ answer: [
+ Für das Polygon $sans(p p_1 ... p_n)$ sind die Mittelwertkoordinaten $mu_i$
+ eines Punkts $sans(p)$ so definiert:
+ $
+ mu_i := tau_i / (sum_j tau_j), "wobei" tau_i := 1 / c_i (tan delta_(i-1) +
+ tan delta_i)
+ $
+
+ Der Kern eines Polygons besteht aus allen Punkten im Inneren, von denen aus
+ der gesamte Polygonrand gesehen werden kann, wenn der Polygonrand als
+ undurchsichtig angesehen wird. Die Mittelwertkoordinaten der Punkte im Kern
+ sind alle positiv.
+])
+= Euklidische Geometrie
+#card(
+ question: [Was ist ein euklidischer Raum und was unterscheidet ihn
+von einem affinen?],
+ answer: [
+
+])
+
+== Euklidische Bewegungen
+#card(
+question: [Was gilt für ihre Matrizen?],
+ answer: [
+
+])
+#card(
+ question: [Wie kann man die Drehachse einer Rotation im
+dreidimensionalen Raum bestimmen?],
+ answer: [
+
+])
+
+== Euler-Winkel
+#card(
+ question: [Was sind die Euler-Winkel und wie verwendet man sie?],
+ answer: [
+
+])
+
+
+== Quaternionen
+#card(
+ question: [Was sind Quaternionen, konjugierte und normierte?],
+ answer: [
+
+])
+#card(
+ question: [Wie hangen sie mit Rotationen zusammen?],
+ answer: [
+
+])
+#card(
+ question: [Was lasst sich mit Quaternionen, EulerWinkeln und
+Drehmatrizen jeweils besser gut darstellen oder
+durchführen?],
+ answer: [
+
+])
+== Zweibögen
+#card(
+ question: [Was sind Zweibogen und Kontaktelemente?],
+ answer: [
+
+])
+#card(
+ question: [Wodurch ist ein Zweibogen eindeutig festgelegt?],
+ answer: [
+
+])
+#card(
+ question: [Was erfüllen die drei Endkontaktelemente der beiden
+Bogen eines Zweibogens?],
+ answer: [
+
+])
+#card(
+ question: [Wie bekommt man alle Zweibogen zu gegebenen
+Anfangs-und Endkontaktelement?],
+ answer: [
+
+])
+#card(
+ question: [Wie übertragen sich planare Zweibogenkonstruktionen
+auf sphärische?],
+ answer: [
+
+])
+
+== Volumen
+#card(
+ question: [Wie ist das Volumen eines Parallelepipeds definiert?],
+ answer: [
+
+])
+#card(
+ question: [Warum lassen euklidische Bewegungen
+],
+answer: [
+
+])
+
+== Alternierendes Produkt
+#card(
+ question: [Wie ist das alternierende Produkt definiert und welche
+Eigenschaften hat es?],
+ answer: [
+
+])
+== Lot und Abstand
+#card(
+ question: [Wie lassen sich die Abstände eines Punkts von einer
+Ebene und die zweier Geraden berechnen?],
+ answer: [
+
+])
+= Perspektivische Darstellungen
+== Homogene Koordinaten
+#card(
+ question: [Was sind homogene Koordinten, Fernpunkte und der
+Unpunkt?],
+ answer: [
+
+])
+#card(
+ question: [Geben Sie die Gleichungsdarstellung einer Hyperebene in
+erweiterten Koordinaten an und leiten Sie daraus die
+homogene Darstellung ab!],
+answer: [
+
+])
+#card(
+ question: [Was ist die Fernhyperebene?],
+ answer: [
+
+])
+== Zentralprojektion
+#card(
+ question: [Was ist eine Zentralprojektion?],
+ answer: [
+
+])
+#card(
+ question: [Wie kann sie mit Matrizen beschrieben werden?],
+ answer: [
+
+])
+#card(
+ question: [Was ist die Fokaldistanz und was ist der Hauptpunkt?],
+ answer: [
+
+])
+== Kamerabewegung
+#card(
+ question: [Wie stellt sich eine Zentralprojektion in Matrizen dar,
+wenn das Objekt- und Kamerasystem verschieden sind?],
+ answer: [
+
+])
+== Fluchtpunkte
+#card(
+ question: [Was versteht man unter Fluchtpunkten, de Spur, Horizont,
+Verschwindungsebene und Fluchtdreieck?],
+ answer: [
+
+])
+#card(
+ question: [Wann sind Fluchtpunkte Fernpunkte?],
+ answer: [
+
+])
+#card(
+ question: [Wo schneiden sich Spur und Fluchtgeraden einer Ebene?],
+ answer: [
+
+])
+== Der Hauptsatz
+#card(
+ question: [Erklären Sie, was die Spalten und Elemente der Matrix
+einer Zentralperspektive bedeuten!],
+ answer: [
+
+ ])
+== Kameradaten
+#card(
+ question: [ Wie erhält man die Verschwindungsebene, den
+Hauptrichtungsvektor, den Hauptpunkt und die
+Fokaldistanz aus der Matrix einer Zentralperspektive?],
+ answer: [
+
+])
+#card(
+ question: [Warum ist der Hauptpunkt der Höhenpunkt des
+Fluchtdreiecks?],
+ answer: [
+
+])
+== Fluchtpunkte des Systems
+#card(
+ question: [Was ist eine i-Punkt-Perspektive und wie kann man
+erkennen, ob und welche i-Punkt-Perspektive eine Matrix
+darstellt?],
+ answer: [
+
+])
+== Urbilder
+#card(
+ question: [Wie berechnet man das Urbild eines Punkts und einer
+Geraden unter einer Zentralperspektive?],
+ answer: [
+
+])
+
+== Kamerakalibrierung
+#card(
+ question: [Wie kann man die Matrix bestimmen, die zu einem
+zentralperspektivischen Bild gehört?],
+ answer: [
+
+])
+#card(
+ question: [Wie viele Freiheitsgrade hat man für diese Matrizen und
+was sind ihre Dimensionen?],
+ answer: [
+
+])
+= Projektive Geometrie
+== Projektive Räume
+#card(
+ question: [Was ist ein projektiver Raum?],
+ answer: [
+
+])
+#card(
+ question: [Was sind die projektiven Unterräume?],
+ answer: [
+
+])
+#card(
+ question: [Warum schneiden sich zwei Geraden einer projektiven
+Ebene immer?],
+ answer: [
+
+])
+== Projektive Koordinaten
+#card(
+ question: [Wann heißt eine Punktfolge projektiv unabhängig?],
+ answer: [
+
+])
+#card(
+ question: [Wie ist die projektive Hülle von Punkten definiert?],
+ answer: [
+
+])
+#card(
+ question: [Wie sind projektive Koordinaten definiert?],
+ answer: [
+
+])
+#card(
+ question: [Was ist eine projektive Skala?],
+ answer: [
+
+])
+#card(
+ question: [Wann ist eine projektive Skala eine affine?],
+ answer: [
+
+])
+== Koordintentransformation
+#card(
+ question: [Wie können projektive Koordinaten in projektive
+Koordinaten bezüglich eines anderen Grundecks
+transformiert werden?],
+ answer: [
+
+])
+#card(
+ question: [Wie ändern sich bei einer Koordinatentransformation die
+Koordinaten von Hyperebenen?],
+ answer: [
+
+])
+#card(
+ question: [Warum kann jede Hyperebene eines projektiven Raums
+als Fernhyperebene aufgefasst werden?],
+ answer: [
+
+])
+== Der Dualraum
+#card(
+ question: [Was ist der Dualraum eines projektiven Raums?],
+ answer: [
+
+])
+#card(
+ question: [Was heißt alles dual zueinander?],
+ answer: [
+
+])
+#card(
+ question: [Wie kann man den Schnitt von n Hyperebenen des 𝒫𝒫 ⁿ
+berechnen?],
+ answer: [
+
+])
+== Projektive Abbildungen
+#card(
+ question: [Was ist eine projektive Abbildung?],
+ answer: [
+
+])
+#card(
+ question: [Wann hat eine projektive Abbildung einen ausnahmeraum
+und wie ist er definiert?],
+ answer: [
+
+])
+#card(
+ question: [Auf was bilden projektive Abbildungen projektive
+Unterräume ab?],
+ answer: [
+
+])
+== Kollineationen und Korrelationen
+#card(
+ question: [Was sind Kollineationen und Korrelationen?],
+ answer: [
+
+])
+#card(
+ question: [Wie ist Dualität allgemein definiert?],
+ answer: [
+
+])
+#card(
+ question: [Wie lautet der Satz von Desargues und wie der dazu duale
+Satz?],
+ answer: [
+
+])
+== Linear rationale Transformationen
+#card(
+ question: [Wie lassen sich Projektivitäten zwischen zwei Geraden
+darstellen?],
+ answer: [
+
+])
+== Das Doppelverhältnis
+#card(
+ question: [Was ist das Doppelverhältnis?],
+ answer: [
+
+])
+
+#card(
+ question: [Warum sind Doppelverhältnisse invariant unter
+projektiven Abbildungen?],
+ answer: [
+
+])
+#card(
+ question: [Was ist das harmonische Doppelverhältnis?],
+ answer: [
+
+])
+#card(
+ question: [Was bedeutet harmonische Lage von vier kollinearen
+Punkten, wenn einer von ihnen ein Fernpunkt ist?],
+ answer: [
+
+])
+#card(
+ question: [Unter welchen Vertauschungen ist das harmon,ische
+Verhältnis invariant?],
+ answer: [
+
+])
+== Die duale Abbildung
+#card(
+ question: [Was ist die duale Abbildung?],
+ answer: [
+
+])
+== Quadriken
+#card(
+ question: [Was ist eine Quadrik?],
+ answer: [
+
+])
+#card(
+ question: [Warum können wir annehmen, dass die Matrix einer
+Quadrik symmetrisch ist?],
+ answer: [
+
+])
+#card(
+ question: [Was ist die Fernquadrik und der affine Teil einer
+projektiven Quadrik?],
+ answer: [
+
+])
+#card(
+ question: [Was ist eine Quadrik in einer projektiven Gerade?],
+ answer: [
+
+])
+== Tangential- und Polarebenen
+#card(
+ question: [Wie berechnet man die Tangentenquadrik einer Quadrik?],
+ answer: [
+
+])
+#card(
+ question: [Was sind Polarebenen?],
+ answer: [
+
+])
+#card(
+ question: [Was bilden die Tangentialebenen einer Quadrik?],
+ answer: [
+
+])
+#card(
+ question: [Was ist eine Polaritat?],
+ answer: [
+
+])
+#card(
+ question: [Ist jede Korrelation eine Polaritat?],
+ answer: [
+
+])
+#card(
+ question: [Was bedeutet dies für den Begriff der Dualitat?],
+ answer: [
+
+])
+== Harmonische Punkte und Polaritat
+#card(
+ question: [Was ist das Doppelverhaltnis von pq und xy, wenn q auf
+der Polaren von p bezüglich einer Quadrik Q liegt und x
+und y die Schnittpunkte der Geraden pq mit Q sind?],
+ answer: [
+
+])
+== Normalform
+#card(
+ question: [Was ist die Normalform einer Quadrik?],
+ answer: [
+
+])
+#card(
+ question: [Wie viele projektiv verschiedene Quadriken gibt es im
+reellen projektiven Raum und wie viele im in seiner
+komplexen Erweiterung?],
+ answer: [
+
+])
+= Hyperbolische Geometrie
+== Das hyperbolische Modell
+#card(
+ question: [Erklaren Sie das hyperbolische Modell der hyperbolischen Ebene !],
+ answer: [
+
+])
+#card(
+ question: [Was sind in diesem Modell die hyperbolischen Geraden?],
+ answer: [
+
+])
+#card(
+ question: [Was sind die hyperbolischen Abbildungen in diesem Modell?],
+ answer: [
+
+])
+#card(
+ question: [Nennen Sie einfache Beispiele für hyperbolische
+Abbildungen in diesem Modell !],
+ answer: [
+
+])
+== Das Klein-Modell
+#card(
+ question: [Wie ist das Klein-Modell der hyperbolischen Ebene definiert?],
+ answer: [
+
+])
+#card(
+ question: [Was sind in diesem Modell die hyperbolischen Geraden?],
+ answer: [
+
+])
+#card(
+ question: [Was sind die hyperbolischen Abbildungen in diesem
+Modell?],
+ answer: [
+
+])
+
+#card(
+ question: [Wie sind Entfernungen definiert?],
+ answer: [
+
+])
+#card(
+ question: [Warum sind Entfernungen invariant unter hyperbolischen
+Abb.?],
+ answer: [
+
+])
+== Spiegelungen
+#card(
+ question: [Wie ist eine hyperbolische Spiegelung definiert?],
+ answer: [
+
+])
+#card(
+ question: [Was muss man tun, um eine hyperbolische Spiegelung ais
+euklidische Spiegelung anzusehen?],
+ answer: [
+
+])
+#card(
+ question: [Wie geht man vor, um zu zeigen, dass jede hyperbolische
+Abb. Produkt von Spiegelungen ist?],
+ answer: [
+
+])
+== Kreisverwandtschaften
+#card(
+ question: [Was ist eine stereographische Projektion?],
+ answer: [
+
+])
+#card(
+ question: [Warum sind stereographische Projektionen winkel-und
+kreistreu?],
+ answer: [
+
+])
+#card(
+ question: [Was sind Kreisverwandtschaften?],
+ answer: [
+
+])
+#card(
+ question: [Was ist eine Inversion an einem Kreis?],
+ answer: [
+
+])
+#card(
+ question: [Wie kann man Kreisinversionen berechnen?],
+ answer: [
+
+])
+#card(
+ question: [(Warum) sind Kreisinversionen winkeltreu?],
+ answer: [
+
+])
+#card(
+ question: [Warum sind Kreisinversionen Kompositionen von Ahnlichkeiten und
+ Kreisinversionen?],
+ answer: [
+
+])
+== Das Poincaré-Modell
+#card(
+ question: [Wie ist das Poincaré-Madel! der hyperbolischen Ebene
+definiert?],
+ answer: [
+
+])
+#card(
+ question: [Was sind in diesem Modell die hyperbolischen Geraden?],
+ answer: [
+
+])
+#card(
+ question: [Was sind die hyperbolischen Spiegelungen in diesem
+Modell?],
+ answer: [
+
+])
+#card(
+ question: [Warum sind die hyperbolischen Abb. genau die
+Kreisverwandtschaften, die den Fernkreis auf sich
+abbilden?],
+ answer: [
+
+])
+#card(
+ question: [Wie ist der hyperbolische Winkel definiert?],
+ answer: [
+
+])
+#card(
+ question: [Warum bleiben Winkel unter hyperbolischen Abb.
+invariant?],
+ answer: [
+
+])
+
+== Fundamentalgebiete
+#card(
+ question: [Wie gro8 ist die Winkelsumme eines hyperbolischen
+Dreiecks?],
+ answer: [
+
+])
+#card(
+ question: [Warum ist die Winkelsumme eines hyperbolischen
+Dreiecks kleiner ais 180],
+ answer: [
+
+ ])
+#card(
+ question: [Wie groB kônnen die Winkelsummen regelma8iger n-Ecke sein?],
+ answer: [
+
+])
+#card(
+ question: [Was ist ein Fundamentalgebiet?],
+ answer: [
+
+])
+#card(
+ question: [Was ist eine Fuchssche Gruppe?],
+ answer: [
+
+])
+== Orbifaltigkeiten
+#card(
+ question: [Was ist eine Obifaltigkeit?],
+ answer: [
+
+])
+