kit-books

books of obscure KIT shit
git clone git://source.orangerot.dev/university/kit-books.git
Log | Files | Refs | LICENSE

ggg-cards.typ (86263B)


      1 #import "@preview/cetz:0.4.0"
      2 
      3 /*
      4 * How to use for anki
      5 * -------------------
      6 *
      7 * typst compile ggg-cards.typ output/{0p}ggg-cards.svg
      8 * ls | while read -r a && read -r b; do 
      9 *   echo "<img src='$a'/>, <img src='$b'/>";
     10 * done > geometrische-grundlagen-der-geometrieverarbeitung.csv
     11 *
     12 * put all images from ./output in your ankis collection.media directory
     13 * 
     14 */
     15 #let EXPORT_FLASHCARD = false
     16 
     17 #set heading(numbering: "1.1")
     18 #set text(lang: "de")
     19 
     20 #show math.equation.where(block: false): box
     21 
     22 #set math.mat(delim: "[")
     23 #set math.vec(delim: "[")
     24 
     25 #let TODO(args) = text(stroke: red, [TODO: #args])
     26 
     27 #let transpose(t)={
     28   let output=t.at(0).zip(..t.slice(1))
     29   output
     30 }
     31 
     32 #let numberingH(c)={
     33   return numbering(c.numbering,..counter(heading).at(c.location()))
     34 }
     35 
     36 #let flash-card(
     37   question: "", 
     38   answer: ""
     39 ) = [
     40     #set page("a7", flipped: true, width: auto, header: [
     41       #context {
     42         let h = query(selector(heading.where(level: 1)).before(here())).last()
     43         let s = query(selector(heading.where(level: 2)).before(here())).last()
     44         text(size: 7.8pt)[#smallcaps()[#numberingH(h) #h.body / #numberingH(s) #s.body]]
     45       }
     46     ])
     47     #page()[
     48       #strong(question)
     49     ]
     50     #page()[
     51       #answer
     52     ]
     53 ]
     54 
     55 #let cheatsheet-card(
     56   question: "", 
     57   answer: ""
     58 ) = rect(width: 100%)[
     59   #strong(question)
     60 
     61   #answer
     62 ]
     63 
     64 #let card = if EXPORT_FLASHCARD {flash-card} else {cheatsheet-card}
     65 #show: doc => if not EXPORT_FLASHCARD [
     66   #set page(margin: 1cm, columns: 2) 
     67   #doc
     68 ] else [
     69   #show heading: it => none
     70   #set par(justify: true)
     71   #doc
     72 ]
     73 
     74 /*
     75 *   Grundseite XY
     76 *   X = Höhe
     77 *   Y = Breite
     78 *   Z = Tiefe
     79 * x ^  . z
     80 *   | /
     81 *   +--->  y
     82 */
     83 
     84 #let cube = (
     85   points: (
     86     (0,0,0), // 0
     87     (1,0,0), // 1
     88     (0,1,0), // 2
     89     (1,1,0), // 3
     90     (0,0,1), // 4
     91     (1,0,1), // 5
     92     (0,1,1), // 6
     93     (1,1,1), // 7
     94   ),
     95   edges: (
     96     (0,1, orange),
     97     (0,2, orange),
     98     (0,4),
     99     (1,3, orange),
    100     (1,5),
    101     (2,3, orange),
    102     (2,6),
    103     (3,7),
    104     (4,5),
    105     (4,6),
    106     (5,7),
    107     (6,7)
    108   )
    109 )
    110 
    111 #let house = (
    112   points: (
    113     (0.0, 0.0, 0.0), // 0
    114     (0.0, 0.0, 0.5), // 1
    115     (0.0, 1.0, 0.0), // 2
    116     (0.0, 1.0, 0.5), // 3
    117     (1.0, 0.0, 0.0), // 4
    118     (1.0, 0.0, 0.5), // 5
    119     (1.0, 1.0, 0.0), // 6
    120     (1.0, 1.0, 0.5), // 7
    121     (0.0, 0.5, 1.0),
    122     (1.0, 0.5, 1.0)
    123   ),
    124   edges: (
    125     (0,1, orange),
    126     (0,2, orange),
    127     (0,4),
    128     (1,3, orange),
    129     (1,5),
    130     (2,3, orange),
    131     (2,6),
    132     (3,7),
    133     (4,5),
    134     (4,6),
    135     (5,7),
    136     (6,7),
    137     // Roof
    138     (1,8, orange),
    139     (3,8, orange),
    140     (5,9),
    141     (7,9),
    142     (8,9)
    143   )
    144 )
    145 
    146 = Darstellende Geometrie
    147 == Der Satz von Pohlke
    148 #card(
    149   question: [Wie lautet der Satz von Pohlke und wie lasst er sich anwenden?],
    150   answer: [
    151     Jedes Dreibein, das eine Ebene aufspannt, ist Parallelprojektion eines
    152     gleichschenkligen orthogonalen Dreibeins im Raum.
    153 
    154 #cetz.canvas({
    155   import cetz.draw: *
    156   import cetz.matrix: *
    157 
    158   for edge in cube.edges {
    159     let transformation = transform-rotate-xz(75deg, -35deg)
    160     let a = mul4x4-vec3(transformation, cube.points.at(edge.at(0)))
    161     let b = mul4x4-vec3(transformation, cube.points.at(edge.at(1)))
    162     // let a = cube.points.at(edge.at(0))
    163     // let b = cube.points.at(edge.at(1))
    164     line((a.at(0), a.at(1)), (b.at(0), b.at(1)), stroke: if (a.at(2) < 0 or
    165     b.at(2) < 0) {gray} else {black})
    166   }
    167 })
    168 ])
    169 #card(
    170   question: [Was sind Militar-, Kavalier-und Kabinett­Projektionen?],
    171   answer: [
    172     #table(columns: 3*(1fr,), 
    173     [Militar], [Kavalier], [Kabinett],
    174     [
    175 #cetz.canvas({
    176   import cetz.draw: *
    177   import cetz.matrix: *
    178 
    179   for edge in cube.edges {
    180     let transformation = ((cos(45deg),cos(45deg),0),(sin(45deg),-sin(45deg),-1))
    181     let a = mul-vec(transformation, cube.points.at(edge.at(0)))
    182     let b = mul-vec(transformation, cube.points.at(edge.at(1)))
    183     line(a,b, stroke: if (edge.len() > 2) {edge.at(2)} else {black})
    184   }
    185 })  
    186     ],
    187     [
    188 #cetz.canvas({
    189   import cetz.draw: *
    190   import cetz.matrix: *
    191 
    192   for edge in cube.edges {
    193     let transformation = ((1,0,cos(45deg)),(0,1,sin(45deg)))
    194     let a = mul-vec(transformation, cube.points.at(edge.at(0)))
    195     let b = mul-vec(transformation, cube.points.at(edge.at(1)))
    196     line(a,b, stroke: if (edge.len() > 2) {edge.at(2)} else {black})
    197   }
    198 })  
    199     ],
    200     [
    201 #cetz.canvas({
    202   import cetz.draw: *
    203   import cetz.matrix: *
    204 
    205   for edge in cube.edges {
    206     let transformation = ((1,0,0.5 * cos(45deg)),(0,1,0.5 * sin(45deg)))
    207     let a = mul-vec(transformation, cube.points.at(edge.at(0)))
    208     let b = mul-vec(transformation, cube.points.at(edge.at(1)))
    209     line(a,b, stroke: if (edge.len() > 2) {edge.at(2)} else {black})
    210   }
    211 })  
    212     ]
    213   )
    214     
    215 ])
    216 == Orthogonale Projektionen
    217 #card(
    218   question: [Was sind Othogonal-, isometrische und dimetrische Projektionen?],
    219   answer: [
    220    *Orthogonalprojektion:* Parallelprojektion, bei denen die Projektion-
    221 sstrahlen senkrecht zur Bildebene sind.
    222 
    223   *isometrisch:* Orthogonalprojektion, bei der die Bildebene senkrecht zur
    224   Raumdiagonalen ist. 
    225 
    226   *dimetrisch:* wie isometrisch, aber die tiefe ist nur 1/2
    227 ])
    228 #card(
    229   question: [Wie erkennt man, dass die Parallelprojektion des
    230 Einheitswürfels eine Orthogonalprojektion ist?],
    231   answer: [
    232     
    233 ])
    234 == Grund-und Aufriss
    235 #let scene(xy) = {
    236   import cetz.draw: *
    237   import cetz.matrix: * 
    238 
    239   let model = house
    240 
    241   for edge in model.edges {
    242     let a = vector.add(model.points.at(edge.at(0)), (0.3,0,0))
    243     let b = vector.add(model.points.at(edge.at(1)), (0.3,0,0))
    244     line(mul-vec(xy, a),mul-vec(xy, b), stroke: if (edge.len() > 2) {edge.at(2)} else {gray})
    245   }
    246   line(
    247     mul-vec(xy, (0,-0.5,0)), 
    248     mul-vec(xy, (1,-0.5,0)), 
    249     mark: (end: "stealth"))
    250   content((), $ x $, anchor: "west")
    251   line(
    252     mul-vec(xy, (0,-0.5,0)), 
    253     mul-vec(xy, (0,2,0)), 
    254     mark: (end: "stealth"))
    255   content((), $ * (y) $, anchor: "west")
    256   line(
    257     mul-vec(xy, (0,-0.5,0)), 
    258     mul-vec(xy, (0,-0.5,1)), 
    259     mark: (end: "stealth"))
    260   content((), $ z $, anchor: "south")
    261   circle(
    262     mul-vec(xy, (1.3,0,0.5)), radius: 0.08,
    263     fill: white
    264   )
    265   content((rel: (0,0.3)), $mono(x)$)
    266   circle(
    267     mul-vec(xy, (1.3,0,0)), radius: 0.08,
    268     fill: white
    269   )
    270   content((rel: (0,-0.3)), $mono(x')$)
    271   circle(
    272     mul-vec(xy, (0,0,0.5)), radius: 0.08,
    273     fill: white
    274   )
    275   content((rel: (0,0.3)), $mono(x'')$)
    276 } 
    277 #card(
    278   question: [Was sind Grund- und Aufriss, Ordner und Rissachsen?],
    279   answer: [#grid(columns: 2*(1fr,), align: center + horizon,
    280 cetz.canvas({
    281   import cetz.draw: *
    282   import cetz.matrix: * 
    283 
    284 
    285   // let transformation = transform-rotate-xyz(0deg, -20deg, 40deg)
    286   let xy = ((cos(30deg),cos(30deg),0),(-sin(30deg),sin(30deg),1))
    287   scene(xy)
    288 }),
    289 cetz.canvas({
    290   import cetz.draw: *
    291   import cetz.matrix: *
    292 
    293   let model = house
    294 
    295   let xy = ((0,1,0),(0,0,1))
    296   for edge in model.edges {
    297     let a = vector.add(model.points.at(edge.at(0)), (0,0,0))
    298     let b = vector.add(model.points.at(edge.at(1)), (0,0,0))
    299     line(mul-vec(xy, a),mul-vec(xy, b), stroke: if (edge.len() > 2) {edge.at(2)} else {gray})
    300   }
    301   circle(
    302     mul-vec(xy, (1.3,0,0.5)), radius: 0.08,
    303     fill: white
    304   )
    305   content((rel: (0,0.3)), $mono(x'')$)
    306   line(
    307     mul-vec(xy, (0,-0.5,0)), 
    308     mul-vec(xy, (0,-0.5,1)), 
    309     mark: (end: "stealth")
    310   )
    311   content((), $ z $, anchor: "south")
    312   line(
    313     mul-vec(xy, (0,-0.5,0)), 
    314     mul-vec(xy, (0,1.3,0)), 
    315     mark: (end: "stealth")
    316   )
    317   content((), $ * $, anchor: "west")
    318   content((rel: (0,-.1)), $ y $, anchor: "north")
    319   content((.6,1.2), [Aufriss])
    320 
    321   /*
    322   *    Grundriss
    323   */
    324 
    325   let xy = ((0,1,0),(-1,0,0))
    326   for edge in model.edges {
    327     let a = vector.add(model.points.at(edge.at(0)), (0.3,0,0))
    328     let b = vector.add(model.points.at(edge.at(1)), (0.3,0,0))
    329     line(mul-vec(xy, a),mul-vec(xy, b), stroke: if (edge.len() > 2) {edge.at(2)} else {gray})
    330   }
    331   circle(
    332     mul-vec(xy, (1.3,0,0.5)), radius: 0.08,
    333     fill: white
    334   )
    335   content((rel: (0,0.3)), $mono(x')$)
    336   line(
    337     mul-vec(xy, (0,-0.5,0)), 
    338     mul-vec(xy, (1,-0.5,0)), 
    339     mark: (end: "stealth")
    340   )
    341   content((), $ x $, anchor: "north")
    342 
    343   content((.6,-1.6), [Grundriss])
    344 
    345   /*
    346   *   Seitenriss
    347   */
    348   let phi = 60deg
    349   let margin = 1.3
    350   let xy = ((sin(phi),cos(phi),0),(0,0,1))
    351   let transform(v) = vector.add(
    352     mul-vec(
    353       ((cos(-phi),-sin(-phi)),(sin(-phi),cos(-phi))),
    354       mul-vec(xy, vector.add(v, (-.5,-.5,margin)))
    355     ),
    356     (0.5,-.3 -.5)
    357   )
    358   for edge in model.edges {
    359     let a = vector.add(model.points.at(edge.at(0)), (0,0,0))
    360     let b = vector.add(model.points.at(edge.at(1)), (0,0,0))
    361     line(transform(a),transform(b), stroke: if (edge.len() > 2) {edge.at(2)} else {gray})
    362   }
    363   let transform(v) = vector.add(
    364     mul-vec(
    365       ((cos(-phi),-sin(-phi)),(sin(-phi),cos(-phi))),
    366       v
    367     ),
    368     (0.5,-.3 -.5)
    369   )
    370   line(transform((-1,margin)),transform((1,margin)))
    371   content((), $ ** $, angle: -phi, anchor: "west")
    372 
    373   content((2,1), [Seitenriss])
    374 })
    375 )
    376 $*$, $*$$*$: Rissachsen \
    377 Ordner
    378 ])
    379 #card(
    380   question: [Ein Punkt liege in einem durch Grund-und Aufriss
    381 bekannten Dreieck. Konstruieren Sie zum Aufriss des
    382 Punkts seinen Grundriss.],
    383 answer: [
    384   Ziehe Geraden je von Ecke durch Punkt bis gegenüberliegende Kante. 
    385   Der Schnittpunkt teilt Kante in zwei Teilverhaltnisse.
    386   Diese Teilverhaltnisse in Grundriss übertragen und Gerade von Schnittpunkt zu
    387   Ecke ziehen. Schnittpunkt aller Geraden ist der Punkt im Grundriss.
    388 ])
    389 == +5 (Spezielle) Seitenrisse
    390 #card(
    391   question: [Wie konstruiert man einen Seitenriss?],
    392   answer: [
    393     Man schaut von Modell in Richtung Rissachse. 
    394 ])
    395 #card(
    396   question: [Zeichnen Sie zum Grund-und aufriss eines Würfels einen
    397 Seitenriss, der eine der Würfel-Diagonalen in wahrer
    398 Länge zeigt.],
    399   answer: [
    400     Erster Seitenriss 45deg. Dann zweiten Seitenriss 45deg zum ersten
    401     Seitenriss. Zeigt Raumdiagonale in wahrere länge. 
    402   ])
    403 == Kurven auf Flachen
    404 #card(
    405   question: [
    406 Wie berechnet man die Tangentialebenen einer implizit
    407 gegebenen Flache?],
    408   answer: [
    409     $Delta F dot (y - x) = 0$ stellt die Tangentialebene von $cal(F)$ an der Stelle
    410     $x$ dar. (Implizite Flächendarstellung $F(x) = F(x,y,z) = 0$)
    411 ])
    412 #card(
    413   question: [Was ist die Kontur und was gilt für eine Kurve, die die
    414 Kontur schneidet im Grundriss?],
    415   answer: [
    416     Wo $x(t)$ die Konturlinie kreuzt, berührt sie im Grundriss den Umriss. 
    417     Bei parallelem Licht teilt die Konturlinie die helle und die dunkle Seite
    418     des Modells. Der Schatten = Silhoutte hat einen Umriss. 
    419 ])
    420 
    421 == Durchdringungen
    422 #card(
    423   question: [Zeichnen Sie die Durchdringung von zwei Zylindern, deren
    424 Achsen, die sich im Allg. nicht schneiden, orthogonale
    425 Richtungen haben.
    426 ],
    427 answer: [
    428 
    429 ])
    430 
    431 = Affine Geometrie
    432 == Affine Raume und Koordinaten
    433 #card(
    434   question: [Was sind ein affiner Raum, ein affines Koordinatensystem
    435 und affine Koordinaten?],
    436   answer: [
    437    Ein affiner Raum ist eine Punktmenge $cal(A)$ mit einem zugehörigen
    438    Vektorraum $A$ und einer binären surjektiven Operation $-: cal(A) times
    439    cal(A) -> A, (p,q) |-> q - p$
    440 
    441    Ein affines Koordinatensystem besteht aus einem Ursprung $a in cal(A)$ und
    442    einer Basis $a_1...a_n in A$. Bezüglich solch eines affinen
    443    Koordinatensystems hat jeder Punkt $x in cal(A)$ eine eindeutige Darstellung
    444    $x = a + a_1 x_1 + ... + a_n x_n$. Die Koeffizienten $x_i$ heißen affine
    445    Koordinaten von $x$ bezüglich des affinene Systems $a a_1...a_n$ und bilden
    446    den Koordinatenvektor $[x_1 ... x_n]^t$ des Punktes $x$. 
    447 ])
    448 
    449 == Baryzentrische Koordinaten
    450 #card(
    451   question: [Was sind baryzentrische Koordinaten, Grundecke,
    452 erweiterte Koordinaten?],
    453   answer: [
    454      Zu einem Punkt $p = p_0 + a_1 x_1 + ... +
    455     a_n x_n$ sind die Koeffizienten $x_0, ..., x_n$ die baryzentrischen
    456     Koordinaten bezüglich des Grundecks $p_0 .. p_n$. Gleichzeitig erweitern sie
    457     die affinen Koordinaten, sodass sich die Summe zu Eins ergänzt. 
    458     $
    459     script("erweiterter \nKoordinatenvektor") 
    460     vec(1,p) = mat(1,...,1;p_0, ..., p_n) vec(x_0, x) 
    461     script("baryzentrischer \nKoordinatenvektor")
    462     $
    463 ])
    464 #card(
    465   question: [Wie hängen baryzentrische und affine Koordinaten
    466 zusammen?],
    467   answer: [
    468     $
    469     &p = \
    470     &= p_0 + a_1 x_1 + ... + a_n x_n \
    471     &= p_0 (1 - x_1 - ... - x_n) + (a + a_1) x_1 + ... + (a + a_n) x_n \
    472     &= p_0 x_0 + ... + p_n x_n
    473     $
    474 ])
    475 #card(
    476   question: [Was bedeuten baryzentrische Koordinaten bezüglich eines
    477 Dreiecks geometrisch?],
    478   answer: [
    479     #grid(columns: 2*(1fr,),
    480     cetz.canvas({
    481       import cetz.draw: *
    482       import cetz.matrix: *
    483       import calc: *
    484 
    485       let a = (0,0)
    486       let b = (3,0.5)
    487       let c = (1.2,2)
    488       circle(a, radius: 0, name: "a")
    489       circle(b, radius: 0, name: "b")
    490       circle(c, radius: 0, name: "c")
    491       let transformation = transpose((a,b,c))
    492       let bary(x) = mul-vec(transformation, vector.div(x, x.sum()))
    493 
    494       line(
    495         (bary: (a: 1, b: 0, c: 0)), 
    496         (bary: (a: 0, b: 1, c: 0)), 
    497         (bary: (a: 0, b: 0, c: 1)),
    498         close: true
    499       )
    500 
    501       let p = (.28,.32,.5)
    502 
    503       circle((bary: (a: .28, b: .32, c: .5)), radius: 0.08, fill: white)
    504       content((rel: (angle: 20deg, radius: .2)), $p$, anchor: "north")
    505       line((bary: (a: 1, b: 0, c: 0)), bary(vector.element-product(p, (0,1,1))))
    506 
    507       line(bary((1,0,0)), bary(p), name: "line")
    508       content(
    509         ("line.start", 70%, "line.end"),
    510         angle: "line.end",
    511         padding: .05,
    512         anchor: "south",
    513         text($x_1 + x_2$, size: 7pt)
    514       )
    515       line(bary(p), bary(vector.element-product(p, (0,1,1))), name: "line")
    516       content(
    517         ("line.start", 30%, "line.end"),
    518         angle: "line.end",
    519         padding: .05,
    520         anchor: "south",
    521         text($: x_0$, size: 7pt)
    522       )
    523 
    524       line(bary((0,0,1)), bary(vector.element-product(p, (0,1,1))), name: "line")
    525       content(
    526         ("line.start", 50%, "line.end"),
    527         angle: "line.end",
    528         padding: .05,
    529         anchor: "south",
    530         text($x_1$, size: 7pt)
    531       )
    532       content(
    533         ("line.start", 99%, "line.end"),
    534         angle: "line.end",
    535         padding: .05,
    536         anchor: "south",
    537         text($:$, size: 7pt)
    538       )
    539       line(bary(vector.element-product(p, (0,1,1))), bary((0,1,0)), name: "line")
    540       content(
    541         ("line.start", 50%, "line.end"),
    542         angle: "line.end",
    543         padding: .05,
    544         anchor: "south",
    545         text($x_2$, size: 7pt)
    546       )
    547 
    548       circle(("a"), radius: 0.08, fill: white)
    549       content((rel: (angle: 20deg, radius: .2)), $p_0$, anchor: "north")
    550       circle(("b"), radius: 0.08, fill: white)
    551       content((rel: (angle: 20deg, radius: .2)), $p_1$, anchor: "south-west")
    552       circle(("c"), radius: 0.08, fill: white)
    553       content((rel: (angle: 20deg, radius: .2)), $p_2$, anchor: "south-west")
    554     }),
    555 
    556     cetz.canvas({
    557       import cetz.draw: *
    558       import cetz.matrix: *
    559       import calc: *
    560 
    561       let a = (0,0)
    562       let b = (3,0.5)
    563       let c = (1.2,2)
    564       circle(a, radius: 0, name: "a")
    565       circle(b, radius: 0, name: "b")
    566       circle(c, radius: 0, name: "c")
    567       let transformation = transpose((a,b,c))
    568       let bary(x) = mul-vec(transformation, vector.div(x, x.sum()))
    569 
    570       line(
    571         (bary: (a: 1, b: 0, c: 0)), 
    572         (bary: (a: 0, b: 1, c: 0)), 
    573         (bary: (a: 0, b: 0, c: 1)),
    574         close: true
    575       )
    576       
    577       let coord = (.28,.32,.5)
    578       let p = vector.div(coord, coord.sum())
    579 
    580       circle((bary(p)), radius: 0.08, fill: white)
    581       content((rel: (angle: 20deg, radius: .2)), $p$, anchor: "north")
    582 
    583       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")
    584       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")
    585       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")
    586 
    587       line(bary((1,0,0)), bary((p.at(2) + p.at(0),p.at(1), 0)), name: "line")
    588       content(
    589         ("line.start", 50%, "line.end"),
    590         angle: "line.end",
    591         padding: .05,
    592         anchor: "north",
    593         text($x_1 :$, size: 7pt)
    594       )
    595 
    596       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")
    597       content(
    598         ("line.start", 50%, "line.end"),
    599         angle: "line.end",
    600         padding: .05,
    601         anchor: "north",
    602         text($x_2$, size: 7pt)
    603       )
    604 
    605       line(bary((p.at(1),p.at(0) + p.at(2), 0)), bary((0,1,0)), name: "line")
    606       content(
    607         ("line.start", 50%, "line.end"),
    608         angle: "line.end",
    609         padding: .05,
    610         anchor: "north",
    611         text($: x_0$, size: 7pt)
    612       )
    613 
    614       circle(("a"), radius: 0.08, fill: white)
    615       content((rel: (angle: -20deg, radius: .2)), $p_0$, anchor: "north")
    616       circle(("b"), radius: 0.08, fill: white)
    617       content((rel: (angle: 20deg, radius: .2)), $p_1$, anchor: "south-west")
    618       circle(("c"), radius: 0.08, fill: white)
    619       content((rel: (angle: 20deg, radius: .2)), $p_2$, anchor: "south-west")
    620     })
    621   ) 
    622 ])
    623 #card(
    624   question: [Wie erhalt man die baryzentrischen Koordinaten des
    625 Höhenpunkts, des In-und Umkreismittelpunkts eines
    626 Dreiecks?],
    627   answer: [
    628     Umkreismittelpunkt:
    629     $
    630       m = (sans(a) sin(2 alpha) + ... + sans(c) sin(2 gamma)) / (sin(2 gamma) + ... + sin(2 gamma))
    631     $
    632 
    633     Inkreismittelpunkt
    634     $
    635       n = (sans(a) a + ... + sans(c) c) / (a + ... + c)
    636     $
    637 
    638     Höhenpunkt
    639     $
    640       h = (sans(a) tan(alpha) + ... + sans(c) tan(gamma)) / (tan(alpha) + ... + tan(gamma))
    641     $
    642 ])
    643 == Affinkombinationen
    644 #card(
    645   question: [Was sind Affin-und Konvex-kombinationen?],
    646   answer: [
    647     Eine Affinkombinationen ist eine Summe
    648     $
    649       sans(p) &:= sum_(i=0)^m p_i omega_i \
    650               &:= sans(p)_0 omega + (sans(p)_1 - sans(p)_0)omega_1 + ... +
    651               (sans(p)_m - sans(p)_0) omega_m
    652     $
    653     $
    654       omega = omega_0 + ... + omega_m = cases(1 "falls" sans(p) "ein Punkt", 0
    655       "falls" sans(p) "ein Vektor")
    656     $
    657     Eine Affinkombinationen heißt Konvexkombination, falls
    658     $
    659       omega = 1 "und" forall i : omega_i >= 0
    660     $
    661 ])
    662 #card(
    663   question: [Was sind konvexe Hüllen und Simplexe?],
    664   answer: [
    665     Die Menge aller Konvexkombinationen bildet die konvexe Hülle der Punktmenge
    666     ${sans(p)_0, ..., sans(p)_m}$. Insbesonder heißt die konvexe Hülle eines
    667     Grundecks $sans(p)_0...sans(p)_n$ Simplex und speziell für $n=1$ Strecke,
    668     für $n=2$ Dreieck und für $n=3$ Tetraeder. 
    669 ])
    670 == Unterraume
    671 #card(
    672   question: [Wie kann man affine Unterraume darstellen?],
    673   answer: [
    674     Die Lösung 
    675     $
    676       n vec("", x, "") = vec("", b, "") + overbrace(mat(""; b_1, ..., b_r; ""),r) vec(y,"")r
    677     $
    678     eines inhomogenen linearen Gleichungssystems (LGS)
    679     $
    680       n-r overbrace(mat(""; "", A, ""; ""), n) vec("", x, "") = vec(a, "")
    681     $
    682     vom Rang $n-r$ stellt einen affinen Unterraum des $cal(A)^n$ der Dimension
    683     $r$ dar. Der Parametervektor $y$ stellt $x$ bezüglich des
    684     Unterraum-Koordinatensystems $sans(b)sans(b)_1...sans(b)_r$ dar. 
    685 ])
    686 #card(
    687   question: [Was ist eine Hyperebene und wie stellt man sie mit
    688 baryzentrischen Koordinaten dar?],
    689   answer: [
    690     Eine Hyperebene ist ein (n-1)-dimensionaler Untervektorraum des $cal(A)^n$.
    691     Sie hat eine Darstellung der Form $u(x) := u_1 x_1 + ... + u_n x_n + u_0 =
    692     0$.Aus dieser linearen Gleichung lässt sich leicht eine Darstellung in
    693     baryzentrischen Koordinaten bezüglich der Punkte mit den erweiterten
    694     Koordinatenvektoren $[1 1 0...0]^t, [1 0 1 0...0]^t, ..., [1 0...0 1]^t$
    695     gewinnen. Sei $1 = x_0 + ... + x_n$. Dann ist 
    696 $
    697   u(x) &= u_0 ( x_0 + ... + x_n) + u_1 x_1 + ... + u_n x_n \
    698        &= u_0 x_0 + (u_0 + u_1) x_1 + ... + (u_0 + u_n) x_n \
    699        &= 0
    700 $
    701 ])
    702 #card(
    703   question: [Wie kann ein Würfel in 6 Simplexe gleichen Volumens
    704 zerlegt werden?],
    705   answer: [
    706     #grid(columns: 2*(1fr,),
    707     [
    708    $0 <= x <= y <= z <= 1$ \ 
    709    $0 <= x <= z <= y <= 1$ \ 
    710    $0 <= y <= x <= z <= 1$ \ 
    711    $0 <= y <= z <= x <= 1$ \ 
    712    $0 <= z <= x <= y <= 1$ \ 
    713    $0 <= z <= y <= x <= 1$ \ 
    714     ],
    715     [
    716       #cetz.canvas({
    717      import cetz.draw: *
    718      import cetz.matrix: *
    719 
    720      let transformation = ((1,0,-0.5 * cos(45deg)),(0,1,0.5 * sin(45deg)))
    721      for edge in cube.edges {
    722        let a = mul-vec(transformation, cube.points.at(edge.at(0)))
    723        let b = mul-vec(transformation, cube.points.at(edge.at(1)))
    724        line(a,b, stroke: black)
    725      }
    726      line(
    727         mul-vec(transformation, (0,0,0)),
    728         mul-vec(transformation, (1,0,0)),
    729         mul-vec(transformation, (1,1,1)),
    730         mul-vec(transformation, (0,1,1)),
    731         close: true,
    732         stroke: green,
    733         fill: green.transparentize(75%)
    734      )
    735      line(
    736         mul-vec(transformation, (0,0,0)),
    737         mul-vec(transformation, (0,1,0)),
    738         mul-vec(transformation, (1,1,1)),
    739         mul-vec(transformation, (1,0,1)),
    740         close: true,
    741         stroke: blue,
    742         fill: blue.transparentize(75%)
    743      )
    744      line(
    745         mul-vec(transformation, (0,0,0)),
    746         mul-vec(transformation, (0,0,1)),
    747         mul-vec(transformation, (1,1,1)),
    748         mul-vec(transformation, (1,1,0)),
    749         close: true,
    750         stroke: red,
    751         fill: red.transparentize(75%)
    752      )
    753    })
    754    Einfache Freudenthal-Triangulierung
    755  ]
    756   )
    757 ])
    758 == Gitter
    759 #card(
    760   question: [Was kann ein regelmaBiges Dreiecksgitter in
    761 baryzentrischen Koordinaten beschrieben werden?],
    762   answer: [
    763     $
    764       x = a alpha + b beta + c gamma 
    765       text("mit") 1 = alpha + beta + gamma
    766     $
    767     Die Isolinien $alpha = i, beta = j, gamma = k$ für $i, j, k in ZZ$ beschreiben
    768     ein regelmaBiges Gitter. 
    769 
    770     #cetz.canvas({
    771       import cetz.draw: *
    772       import cetz.matrix: *
    773       circle((0,0), radius: 0, name: "a")
    774       circle((1,0), radius: 0, name: "b")
    775       circle((cos(60deg),sin(60deg)), radius: 0, name: "c")
    776 
    777       line((bary: (a: 2, b: -2, c: 1)), (bary: (a: 1, b: -2, c: 2)))
    778       content((rel: (angle: -60deg, radius: -1.3), to: ()), $alpha = 1$, angle: -60deg, anchor: "west")
    779       line((bary: (a: 2, b: -1, c: 0)), (bary: (a: 0, b: -1, c: 2)))
    780       content((rel: (angle: -60deg, radius: -1.3), to: ()), $alpha = 0$, angle: -60deg, anchor: "west")
    781       line((bary: (a: 2, b: 0, c: -1)), (bary: (a: -1, b: 0, c: 2)))
    782       content((rel: (angle: -60deg, radius: -1.3), to: ()), $alpha = -1$, angle: -60deg, anchor: "west")
    783       line((bary: (a: 1, b: 1, c: -1)), (bary: (a: -2, b: 1, c: 2)))
    784       content((rel: (angle: -60deg, radius: -1.3), to: ()), $alpha = -2$, angle: -60deg, anchor: "west")
    785       line((bary: (a: 0, b: 2, c: -1)), (bary: (a: -2, b: 2, c: 1)))
    786       line((bary: (a: -1, b: 3, c: -1)), (bary: (a: -2, b: 3, c: 0)))
    787 
    788       line((bary: (a: 1, b: -2, c: 2)), (bary: (a: -2, b: 1, c: 2)))
    789       content((rel: (.1,0)), $gamma = 2$, anchor: "west")
    790       line((bary: (a: 2, b: -2, c: 1)), (bary: (a: -2, b: 2, c: 1)))
    791       content((rel: (.1,0)), $gamma = 1$, anchor: "west")
    792       line((bary: (a: 2, b: -1, c: 0)), (bary: (a: -2, b: 3, c: 0)))
    793       content((rel: (.1,0)), $gamma = 0$, anchor: "west")
    794       line((bary: (a: 2, b: 0, c: -1)), (bary: (a: -2, b: 4, c: -1)))
    795       content((rel: (.1,0)), $gamma = -1$, anchor: "west")
    796 
    797 
    798       line((bary: (a: 2, b: -2, c: 1)), (bary: (a: 2, b: 0, c: -1)))
    799       content((rel: (angle: 60deg, radius: -1.3), to: ()), $beta = 0$, angle: 60deg, anchor: "west")
    800       line((bary: (a: 1, b: -2, c: 2)), (bary: (a: 1, b: 1, c: -1)))
    801       content((rel: (angle: 60deg, radius: -1.3), to: ()), $beta = 1$, angle: 60deg, anchor: "west")
    802       line((bary: (a: 0, b: -1, c: 2)), (bary: (a: 0, b: 2, c: -1)))
    803       content((rel: (angle: 60deg, radius: -1.3), to: ()), $beta = 2$, angle: 60deg, anchor: "west")
    804       line((bary: (a: -1, b: 0, c: 2)), (bary: (a: -1, b: 3, c: -1)))
    805       content((rel: (angle: 60deg, radius: -1.3), to: ()), $beta = 3$, angle: 60deg, anchor: "west")
    806       line((bary: (a: -2, b: 1, c: 2)), (bary: (a: -2, b: 4, c: -1)))
    807 
    808       circle(("a"), radius: 0.08, fill: white)
    809       content((rel: (angle: 20deg, radius: .2)), $a$, anchor: "south-west")
    810       circle(("b"), radius: 0.08, fill: white)
    811       content((rel: (angle: 20deg, radius: .2)), $b$, anchor: "south-west")
    812       circle(("c"), radius: 0.08, fill: white)
    813       content((rel: (angle: 20deg, radius: .2)), $c$, anchor: "south-west")
    814     })
    815 ])
    816 #card(
    817   question: [Was ist die Coxeter-Freudenthal-Kuhn­Triangulierung?],
    818   answer: grid(columns: 2, gutter: 10pt, [
    819       #cetz.canvas({
    820      import cetz.draw: *
    821      import cetz.matrix: *
    822 
    823      let perspective = ((1,0,cos(45deg)),(0,1,sin(45deg)))
    824      for edge in cube.edges {
    825        let a = mul-vec(perspective, cube.points.at(edge.at(0)))
    826        let b = mul-vec(perspective, cube.points.at(edge.at(1)))
    827        line(a,b, stroke: black)
    828      }
    829      let a = (0,0,0)
    830      let b = (1,0,0)
    831      let c = (0,0,1)
    832      let d = (0,1,0)
    833      let transformation = transpose((a,b,c,d))
    834      let bary(x) = mul-vec(transformation, vector.div(x, x.sum()))
    835 
    836      line(
    837         mul-vec(perspective, bary((0,0,0,1))),
    838         mul-vec(perspective, bary((0,0,1,0))),
    839         mul-vec(perspective, bary((-1,1,1,0))),
    840         mul-vec(perspective, bary((-1,1,0,1))),
    841         fill: red.transparentize(70%),
    842         stroke: red,
    843         close: true
    844      )
    845      line(
    846         mul-vec(perspective, bary((0,1,0,0))),
    847         mul-vec(perspective, bary((0,0,1,0))),
    848         mul-vec(perspective, bary((-1,0,1,1))),
    849         mul-vec(perspective, bary((-1,1,0,1))),
    850         fill: green.transparentize(70%),
    851         stroke: green,
    852         close: true
    853      )
    854      line(
    855         mul-vec(perspective, bary((0,1,0,0))),
    856         mul-vec(perspective, bary((0,0,1,0))),
    857         mul-vec(perspective, bary((0,0,0,1))),
    858         fill: blue.transparentize(70%),
    859         stroke: blue,
    860         close: true
    861      )
    862      line(
    863         mul-vec(perspective, bary((-1,1,1,0))),
    864         mul-vec(perspective, bary((-1,1,0,1))),
    865         mul-vec(perspective, bary((-1,0,1,1))),
    866         fill: blue.transparentize(70%),
    867         stroke: blue,
    868         close: true
    869      )
    870 
    871      circle(mul-vec(perspective, a), radius: 0.08, fill: white)
    872      content((rel: (angle: 20deg, radius: .2)), $a$, anchor: "south-west")
    873      circle(mul-vec(perspective, b), radius: 0.08, fill: white)
    874      content((rel: (angle: 20deg, radius: .2)), $b$, anchor: "south-west")
    875      circle(mul-vec(perspective, c), radius: 0.08, fill: white)
    876      content((rel: (angle: 20deg, radius: .2)), $c$, anchor: "south-west")
    877      circle(mul-vec(perspective, d), radius: 0.08, fill: white)
    878      content((rel: (angle: 20deg, radius: .2)), $d$, anchor: "south-west")
    879    })  
    880 ], [
    881   Der Würfel links ist in sechs Tetraeder zerlegt. Unterteilt man alle Würfel
    882   eines raumfüllenden regelmäßigen Würfelgitters parallel zu der links gezeigten
    883   Unterteilung, erhält man die Coxeter-Freudenthal-Kuhn-Triangulierung des
    884   Raums. 
    885 ]))
    886 == Affine Abbildungen
    887 #card(
    888   question: [Was ist eine affine Abbildung und die ihr zugeordnete
    889 lineare Abbildung?],
    890   answer: [
    891     Eine Abbildung $Phi: cal(A) -> cal(B)$ zwischen affinen Räumen heißt affin,
    892     wenn sie alle Affinkombinationen invariant lässt, d.h. wenn sie mit
    893     Affinkombinationen vertauschbar ist: $Phi(sum sans(p)_i x_i) = sum(Phi
    894     sans(p)_i) x_i$
    895 
    896     $
    897       Phi(sans(x)) = Q bb(x) &:= sans(q)_0 x_0 + ... + sans(q)_n x_n \
    898                              &= sans(q)_0 + (sans(q)_1 - sans(q)_0) x_1 + ... +
    899                              (sans(q)_n - sans(q)_0) x_n \
    900                              &=: sans(b) + B sans(x)
    901     $
    902     
    903     Die Abbildung $phi(sans(v)) = B sans(v)$ ist die $Phi$ zugeodnete lineare
    904     Abbildung $sans(A) -> sans(B)$ für $sans(v) = sans(y) - sans(x),
    905     Phi(sans(y)) - Phi(sans(x)) = B sans(v)$
    906 ])
    907 #card(
    908   question: [Wie lassen sich beide mit baryzentrischen Koordinaten
    909 und Matrizen beschreiben?],
    910   answer: [
    911     Der Vektor $sans(v)$ hat den baryzentrischen Koordinatenvektor $bb(v) =
    912     bb(y) - bb(x)$. Somit haben die affine Abbildung $Phi$ und die zugeodnete
    913     lineare Abbildung $phi$ bezüglich baryzentrischen Koordinaten die gleiche
    914     Matrixdarstellung:
    915     $
    916       Phi(sans(x)) = Q bb(x) = mat(sans(q)_0,...,sans(q)_n) bb(x)\
    917       phi(sans(v)) = Q bb(v) = mat(sans(q)_0,...,sans(q)_n) bb(v)
    918     $
    919 ])
    920 == Parallelitat und Teilverhaltnisse
    921 #card(
    922   question: [Wie sind Parallelitat und Teilverhaltnisse definiert?],
    923   answer: [
    924     Zwei affine Unterräume $cal(U) = sans(p) + sans(U)$ und $cal(V) = sans(q) +
    925     sans(V)$ der $cal(A)^n$ heißen parallel, falls $sans(U) subset sans(V)$ oder
    926     $sans(V) subset sans(U)$. Die linearen Räume $sans(U)$ und $sans(V)$ heißen
    927     auch Richtungen der affinen Unterräume. 
    928 
    929     Zwei Strecken $sans(a b)$ und $sans(c d) subset cal(A)^n$ heißen parallel,
    930     wenngilt
    931     $
    932       sans(d) - sans(c) = (sans(b) - sans(a)) rho, rho in bb(R) \{0}
    933     $
    934 
    935     Sind Strecken parallelr, schreiben wir auch
    936     $
    937     (sans(d) - sans(c)) / (sans(b) - sans(a)) := rho
    938     $
    939     wobei der Faktor $rho$ das Teilverhältnis der beiden Strecken ist. 
    940 ])
    941 == Verallgemeinerte baryzentrische Koordinaten
    942 #card(
    943   question: [Was sind verallgemeinerte baryzentrische Koordinaten
    944 und wie lassen sie sich alle darstellen?],
    945   answer: [
    946     Sei $sans(p_1 ... p_n)$ ein nicht-degeneriertes Polygon $cal(P)$ im
    947     $cal(A)^2$. 
    948     $
    949       sans(p) = sum sans(p)_i sans(v)_i "und" 
    950       1 = sum sans(v)_i
    951     $
    952     heißen die $v_i$ verallgemeinerte baryzentrische Koordinaten von
    953     $sans(p)$ bezüglich $cal(P)$. Sie bilden einen verallgemeinerten
    954     baryzentrischen Koordinatenvektor $bb(v) = [v_1 ... v_n]^t$. 
    955 ])
    956 == Wachspresskoordinaten
    957 #card(
    958   question: [Was sind die Wachspresskoordinaten und welche
    959 Eigenschaften haben sie?],
    960   answer: [
    961     $a_i := det mat(1,1,1;sans(p), sans(p)_i, sans(p)_(i+:))$ und 
    962     $d_i := det mat(1,1,1; sans(p)_(i-z),sans(p)_i,sans(p)_(i+1))$
    963 
    964     Wachspresskoordinaten $omega_i := lambda_i / (sum_j lambda_j)$ wobei
    965     $lambda_j = d_j / (a_i a_(i-1))$
    966 
    967     Die Wachspresskoordinaten kann man als Affinkombinationen der $sans(b)_i$
    968     darstellen. Bemerkenswerterweise gilt für der Wachspresskoordinatenvektoren
    969     $bb(w) = [omega_1 ... omega_n]^t$, dass $[sans(b)_1 ... sans(b)_n] bb(w) =
    970     bb(w)$. Somit ist $bb(w)$ ein Eigenvektor der Matrix $B = [sans(b)_1 ...
    971     sans(b)_n]$ zum Eigenwert 1.
    972     
    973 ])
    974 == Mittelwertkoordinaten
    975 #card(
    976   question: [Was sind die Mittelwertkoordinaten und wo sind sie alle
    977 positiv?],
    978   answer: [
    979     Für  das Polygon $sans(p p_1 ... p_n)$ sind die Mittelwertkoordinaten $mu_i$
    980     eines Punkts $sans(p)$ so definiert:
    981     $
    982       mu_i := tau_i / (sum_j tau_j), "wobei" tau_i := 1 / c_i (tan delta_(i-1) +
    983       tan delta_i)
    984     $
    985 
    986     Der Kern eines Polygons besteht aus allen Punkten im Inneren, von denen aus
    987     der gesamte Polygonrand gesehen werden kann, wenn der Polygonrand als
    988     undurchsichtig angesehen wird. Die Mittelwertkoordinaten der Punkte im Kern
    989     sind alle positiv. 
    990 ])
    991 = Euklidische Geometrie
    992 #card(
    993   question: [Was ist ein euklidischer Raum und was unterscheidet ihn
    994 von einem affinen?],
    995   answer: [
    996     Ein euklidischer Vektorraum ist ein reeller Vektorraum mit einem
    997     Skalarprodukt und ein euklidischer Raum ist ein affiner Raum, dessen
    998     zugeordneter Vektorraum euklidisch ist. 
    999 
   1000     $cal(E)^n$ bezeichnet den euklidischen $cal(A)^n$ und er Abstand zweier
   1001     Punkte $sans(p)$ und $sans(q)$ ist die Länge des Vektors $sans(q) - sans(p)$
   1002     als auch die Länge der Strecke $sans(p q)$. 
   1003 
   1004 
   1005 ])
   1006 
   1007 == Euklidische Bewegungen
   1008 #card(
   1009 question: [Was gilt für ihre Matrizen?],
   1010   answer: [
   1011     Ein affines Koordinatessystem $sans(a a_1 ... a_n)$ ist ein euklidisches
   1012     Koordinatensystem, wenn die Vektoren $sans(a)_1,...,sans(a)_n$ eine
   1013     orthonormale Basis bilden. 
   1014 
   1015     Stellen $sans(u), sans(v)$ zwei Vektoren zezüglich einer orthonormalen Basis
   1016     dar, ist $sans(u)^t sans(v)$ ihr Skalarprodukt und allgemeiner lässt sich
   1017     jedes Skalarprodukt mit Hilfe einer symmetrischen, positiv definiten Matrix
   1018     A als $sans(u)^t A sans(v)$ schreiben. Hier setzen wir für den $cal(E)^n$
   1019     immer ein euklidisches Koordinatensystem voraus. 
   1020 ])
   1021 #card(
   1022   question: [Wie kann man die Drehachse einer Rotation im
   1023 dreidimensionalen Raum bestimmen?],
   1024   answer: [
   1025     Eigenvektor der Matrix $[sans(b)_1, sans(b)_2, sans(b)_3]$
   1026     
   1027     Eine affine Abbildung $Phi(x) = sans(b) + B sans(x)$ ist eine Bewegung, wenn
   1028     B orthonormal ist. 
   1029 ])
   1030 
   1031 == Euler-Winkel
   1032 #card(
   1033   question: [Was sind die Euler-Winkel und wie verwendet man sie?],
   1034   answer: [
   1035     Jede Rotation im $cal(E)^3$ kann aus einer Rotation um die z-Achse mit dem
   1036     Winkel $alpha$, eine Rotation um die gedrehte x-Achse (= $x'$-Achse) mit dem
   1037     Winkel $beta$ und eine Rotation um die zweimal gedrehte z-Achse mit dem
   1038     Winkel $gamma$ zusammengesetzt werden. Diese Rotation sind die
   1039     Euler-Drehungen um die Euler-Winkel $alpha, beta, gamma$. 
   1040     
   1041     #text(stroke: red)[TODO: verwendung]
   1042 ])
   1043 
   1044 
   1045 == Quaternionen
   1046 #card(
   1047   question: [Was sind Quaternionen, konjugierte und normierte?],
   1048   answer: [
   1049     Quaternionen oder hyperkomplexe Zahlen sind Elemente
   1050     $
   1051       bb(q) = (q_0, ..., q_3) = q_0 dot 1 + q_1 dot i + q_2 dot j + q_3 dot k
   1052     $
   1053     des $bb(R)^4$ mit den Multiplikationsregeln
   1054     #table(columns: 5,
   1055       $dot$, $1$, $i$, $j$, $k$,
   1056       $1$,   $1$, $i$, $j$, $k$,
   1057       $i$,   $i$, $-1$, $k$, $-j$,
   1058       $j$,    $j$, $-k$, $-1$, $i$,
   1059       $k$,   $k$, $j$, $-i$, $-1$
   1060     )
   1061     d.h. für ein Quaternionenprodukt
   1062     $
   1063       bb(a) dot bb(b) &= (a_0, ..., a_3) dot (b_0, ..., b_3) \
   1064         &= (a_0 b_0 - a_1 b_1 - a_2 b_2 - a_3 b_3) \
   1065         & + (a_0 b_1 + a_1 b_0 + a_2 b_3 - a_3 b_2) dot i \
   1066         & + (a_0 b_2 - a_1 b_3 + a_2 b_0 + a_3 b_1) dot j \
   1067         & + (a_0 b_3 + a_1 b_2 - a_2 b_1 + a_3 b_0) dot k \
   1068     $
   1069     und insbesondere $bb(1) := (1, 0, 0, 0)$ und alle $bb(q)$ ist
   1070     $
   1071       bb(1) dot bb(q) = bb(q) dot bb(1)
   1072     $
   1073 
   1074     Das konjugierte Quaternion zu $bb(q)$ ist
   1075     $
   1076       bb(q)^* = (q_0, -q_1, -q_2, -q_3)
   1077     $
   1078 
   1079     Es heißt Einheitsquaternion oder normiertes Quaternion, falls
   1080     $
   1081       norm(bb(q))^2 = norm(bb(q)^*)^2 := sum q_i^2 = 1
   1082     $
   1083     
   1084 ])
   1085 #card(
   1086   question: [Wie hangen sie mit Rotationen zusammen?],
   1087   answer: [
   1088     Sei $bb(r) = (cos phi / 2, a^t, sin phi / 2) $ ein normiertes Quaternion,
   1089     d.h. $a^2 = 1$.
   1090     Dann gilt
   1091     $
   1092       bb(r) dot (0 x^t) dot bb(r)^* = (mat(0, ""; "", R) vec(0, x))^t
   1093     $
   1094 
   1095     $bb(r) = (1, 0, 0, )$ stellt die Identität dar\
   1096     $bb(r)^*$ die inverse Rotation \
   1097     $bb(p r)$ die Komposition der durch $bb(p)$ und $bb(r)$ gegebene Rotation
   1098 
   1099 ])
   1100 #card(
   1101   question: [Was lasst sich mit Quaternionen, Euler­Winkeln und
   1102 Drehmatrizen jeweils besser gut darstellen oder
   1103 durchführen?],
   1104   answer: [
   1105   *Euler-Winkel*: interpolation, anwendung auf pkt\
   1106   *Matirx*: anwendung auf pkt\
   1107   *Quaternion*: Konkatenation, Normierung, Interpolation
   1108 ])
   1109 == Zweibögen
   1110 #card(
   1111   question: [Was sind Zweibogen und Kontaktelemente?],
   1112   answer: [
   1113     Ein Zweibogen (Biarc) ist eine glatte Kurve bestehend aus zwei orientierten
   1114     Kreisbögen. Dabei dürfen Radien unendlich sein, d.h. Kreisbögen können
   1115     Strecken sein. 
   1116 
   1117     Ein Punkt $p$ einer Kurve bildet zusammen mit dem zugehörigen
   1118     Tangentenvektor $t, norm(t) = 1$, ein Kontaktelement der Kurve. 
   1119 ])
   1120 #card(
   1121   question: [Wodurch ist ein Zweibogen eindeutig festgelegt?],
   1122   answer: [
   1123     Zu zwei gegebenen Punkten $a$ und $b$ und einem Kontaktelement $c t$ gibt es
   1124     genau einen Zweibogen von $a$ nach $b$ mit der Tangentenrichtung $t$ um
   1125     Übergangspunkt $c$ zwischen den beiden Bögen. 
   1126 
   1127 ])
   1128 #card(
   1129   question: [Was erfüllen die drei Endkontaktelemente der beiden
   1130 Bogen eines Zweibogens?],
   1131   answer: [
   1132 ])
   1133 #card(
   1134   question: [Wie bekommt man alle Zweibogen zu gegebenen
   1135 Anfangs-und Endkontaktelement?],
   1136   answer: [
   1137     Im $cal(E)^2$ seien $a u$ und $c w$ zwei beliebige Kontaktelemente mit den
   1138     Tangenten $cal(A) := a + u bb(R)$ und $cal(C) := c w bb(R)$. Dann existiert
   1139     ein eindeutiger Kreis $K$ durch $a$ und $b$ sodass
   1140     $
   1141       phi := angle cal(A K) = angle cal(C K)
   1142     $
   1143     Dieser Kreis $cal(K)$ ist der Ort $cal(B)$ (d.h. die Menge) Übergangs- oder
   1144     Bindepunkte aller Zweibögen mit den Endkontaktelementen $a u$ und $c w$. 
   1145     
   1146 ])
   1147 #card(
   1148   question: [Wie übertragen sich planare Zweibogenkonstruktionen
   1149 auf sphärische?],
   1150   answer: [
   1151     Die Sätze gelten genauso auch auf der Sphäre $S^2$ anstelle des $cal(E)^2$.
   1152     Echte Zweibögen auf $S^2$ sind räumlich: Ihre Bögen liegen in verschiedenen
   1153     Ebenen. Außerdem liegt jeder räumliche Zweibogen auf einer (eideutigen)
   1154     Sphäre. 
   1155 ])
   1156 
   1157 == Volumen
   1158 #card(
   1159   question: [Wie ist das Volumen eines Parallelepipeds definiert?],
   1160   answer: [
   1161     Jedes k-dimensionale Parallelepiped
   1162     $
   1163       P_k := sans(p) + A_k [0,1]^k
   1164     $
   1165     hat die Höhe $gamma_(k k)$ über $P_(k-1)$ und das Volumen
   1166     $
   1167       "vol"_k P_k &:= gamma_11 ... gamma_(k k) \
   1168                   &= sqrt(det(Gamma_k^t B_k^t B_k Gamma_k)) \
   1169                   &= sqrt(det(A_k^t A_k))
   1170     $
   1171 ])
   1172 #card(
   1173   question: [Warum lassen euklidische Bewegungen Volumina invariant?
   1174 ],
   1175 answer: [
   1176   Euklidische Bewegungen lassen Volumina invariant. Affinitäten
   1177   $
   1178     Phi(x) = c + C x: cal(E)^n -> cal(E)^n
   1179   $
   1180   ändern das n-dimensionale Volumina um den Faktor $abs(det C)$ und lassen
   1181   Verhältnisse n-dimensionaler Volumina invariant. (Weil C orthonormal/eine
   1182   Drehung und keine Skalierung ist?)
   1183 ])
   1184 
   1185 == Alternierendes Produkt
   1186 #card(
   1187   question: [Wie ist das alternierende Produkt definiert und welche
   1188 Eigenschaften hat es?],
   1189   answer: [
   1190     Die Determinate einer $n times n$-Matrix $A = [a_1 ... a_n]$ kann mit Hilfe
   1191     ihrer Kofaktoren $v_i = (-1)^(i+1) det A_(i 1)$ berechnet werden, wobei
   1192     $A_(i 1)$ die Matrix A ohne ihre $i$-te Zeile und erste Spalte ist; denn mit
   1193     dem Vektor $bb(b) = [v_1 ... v_n]$ der Kofaktoren git $det A = a_1^t v$. 
   1194 
   1195     Das alternierende Produkt der Vektoren $a_2,...,a_n$ ist der Vektor $a_2 and
   1196     ... and a_n := v$. 
   1197 
   1198     - $a_i^t v = 0$ für $i = 2, ..., n$
   1199     - $"vol"_n A = "vol"_(n-1) [a_2 ... a_n] dot abs(a_1^t) / norm(v) => norm(v)
   1200       = "vol"_(n-1) [a_2 ... a_n]$
   1201     - $det [v a_2 ... a_n] = v^2 >= 0$, d.h. die Folge $v a_2 ... a_n$ ist
   1202       positiv orientiert. 
   1203 
   1204       Für $n=2$: $and vec(a,b) = vec(b, -a)$\
   1205       Für $n=3$: Kreuzprodukt $a_2 and a_3 = a_2 times a_3$
   1206 ])
   1207 == Lot und Abstand
   1208 #card(
   1209   question: [Wie lassen sich die Abstände eines Punkts von einer
   1210 Ebene und die zweier Geraden berechnen?],
   1211   answer: [
   1212     Gesucht: Fußpunkt $f$ und Abstand $d$ 
   1213 
   1214     Punkt $mono(p)$ zu Ebene $cal(U): d(x) = mono(u)^t mono(x) - u = 0$, sodass
   1215     $mono(f) = mono(p) - d mono(u)$: 
   1216     $
   1217       mono(u)^t mono(f) &= mono(u)^t mono(p) - d = u \
   1218       =>  d &= mono(u)^t mono(p) - u \
   1219             &= d(mono(p))
   1220     $
   1221 
   1222     Punkt $mono(p)$ zu Ebene $cal(U): mono(x) = mono(a) + [mono(a)_2 ...
   1223     mono(a)_n]mono(y) =: mono(a) + A mono(y)$, sodass $mono(f) = mono(p) - d
   1224     mono(u)$: 
   1225     $
   1226       d = (det mat((mono(p)-mono(a)), A))/("vol"_(n-1) A) 
   1227         = (det mat((mono(p)-mono(a)), A)) / norm(mono(a)_2 and ... and mono(a)_n) \
   1228 
   1229       mono(f) = mono(p) - (mono(a)_2 and ... and mono(a)_n)/(norm(mono(a)_2 and
   1230       ... and mono(a)_n)) d
   1231     $
   1232 
   1233     Gerade $cal(A): mono(x) = mono(a) + mono(a)_1 lambda$ zu Gerade $cal(B):
   1234     mono(x) = mono(b) + mono(b)_1 lambda$:
   1235     $
   1236       d = ("vol"_3 mat((mono(b)-mono(a)), mono(a)_1, mono(b)_1))/("vol"_2
   1237       mat(mono(a)_1, mono(b)_1))
   1238     $
   1239 
   1240     Der Fußpunkt liegt in der Ebene $cal(E) : mono(u)^t (mono(x) - mono(a)) = 0$
   1241     $
   1242       ... => mono(f) = mono(b) + mono(b)_1 (mono(u)^t (mono(a)-mono(b))) /
   1243       (mono(u)^t mono(b)_1)
   1244     $
   1245 ])
   1246 = Perspektivische Darstellungen
   1247 == Homogene Koordinaten
   1248 #card(
   1249   question: [Was sind homogene Koordinten, Fernpunkte und der
   1250 Unpunkt?],
   1251   answer: [
   1252     Ein Punkt $x = vec(x_1, dots.v, x_n) in cal(A)^n$ hat die homogenen
   1253     Koordinatnvektoren $bb(x) = vec(1, x) xi, xi != 0$, die die Vielfachen des
   1254     erweiterten Koordinatenvektors von $x$ sind. 
   1255 
   1256     Die Mengen der Vielfachen eines Vektors $v$ ohne den Nullvektor $o$ werden
   1257     als ein (einziger) Fern- oder uneigentlicher Punkt mit den homogenen
   1258     Koordinatenvektoren $bb(v) = vec(0, v) phi, phi != 0$ betrachtet. Jedoch
   1259     zählt der Unpunkt $bb(o) = vec(0, o) phi, phi != 0$ nicht zu den
   1260     Fernpunkten.
   1261 
   1262     Vielfache eines homogenen Koordinatenvektors $bb(x)$ stellen denselben Punkt
   1263     $x$ dar. Wir bezeichnen dies mit $bb(x) ~ bb(y) :<=> bb(x) = bb(y)phi, phi
   1264     != 0$, und $bb(x) lt.tri x$
   1265 ])
   1266 #card(
   1267   question: [Geben Sie die Gleichungsdarstellung einer Hyperebene in
   1268 erweiterten Koordinaten an und leiten Sie daraus die
   1269 homogene Darstellung ab!],
   1270 answer: [
   1271   Eine Hyperebene $cal(H): u^t x + u_0 = mat(u_0, u^t) vec(1,x) = 0$ hat die
   1272   homogene Darstellung $bb(u)^t bb(x) = 0$. 
   1273 ])
   1274 #card(
   1275   question: [Was ist die Fernhyperebene?],
   1276   answer: [
   1277     Die projektive Hyperebene $cal(F): [1 0 ... 0] bb(x) = 0$ besteht aus den
   1278     Fernpunkten des $cal(A)^n$. Sie heißt Fern(hyper)ebene oder im $cal(A)^2$
   1279     auch Ferngerade. 
   1280 ] )
   1281 == Zentralprojektion
   1282 #card(
   1283   question: [Was ist eine Zentralprojektion?],
   1284   answer: [
   1285     Bei einer Zentralprojektion sind nicht parallel, sondern gehen alle durch ei
   1286     nZentrum $a$, das auch Auge genannt wird. 
   1287 
   1288     #cetz.canvas({
   1289       import cetz.draw: *
   1290       import cetz.matrix: *
   1291 
   1292       let transformation = ((1,0.5 * cos(30deg),0),(0,-0.5 * sin(30),1))
   1293       let d = 1.3
   1294       let x = (2,2,1)
   1295 
   1296       circle((0,0), radius: .08)
   1297       content((), [Auge], padding: .1, anchor: "north")
   1298 
   1299       line(
   1300         mul-vec(transformation, (0,0,0)), 
   1301         mul-vec(transformation, (0,0,1)), mark: (end: "stealth"))
   1302       content((), $z$, anchor: "south")
   1303 
   1304       line(
   1305         mul-vec(transformation, (0,0,0)), 
   1306         mul-vec(transformation, (3,0,0)), mark: (end: "stealth"))
   1307       content((), $x$, anchor: "west")
   1308 
   1309       line(
   1310         mul-vec(transformation, (2,0,0)), 
   1311         mul-vec(transformation, (2,3,0)), mark: (end: "stealth"))
   1312       content((), $y$, anchor: "west")
   1313 
   1314       line(
   1315         mul-vec(transformation, (2,2,0)), 
   1316         mul-vec(transformation, x))
   1317       content((), $bb(x)$, padding: .1, anchor: "west")
   1318       circle(mul-vec(transformation, x), radius: .08)
   1319 
   1320       line(
   1321         mul-vec(transformation, (0,0,0)), 
   1322         mul-vec(transformation, (0,d,0)))
   1323       content((), $delta$, anchor: "west")
   1324 
   1325       line(
   1326         mul-vec(transformation, (0,d,0)), 
   1327         mul-vec(transformation, (1.5,d,0)),
   1328         mul-vec(transformation, (1.5,d,1)),
   1329         mul-vec(transformation, (0,d,1)),
   1330         close: true
   1331       )
   1332 
   1333       line(
   1334         mul-vec(transformation, (0,0,0)), 
   1335         mul-vec(transformation, x))
   1336 
   1337       let y = mul-vec(((0,0,1,0),(0,d,0,0),(0,0,0,d)),(1,) + x)
   1338 
   1339       circle(mul-vec(transformation, (y.at(1)/y.at(0),d,y.at(2)/y.at(0))), radius: .08)
   1340       content((), $bb(y)$, padding: .1, anchor: "north")
   1341       
   1342     })
   1343      Wir wählen das Koordinatessystem so, dass der Ursprung im
   1344      Projektionszentrum, dem Auge $a$ liegt und die Bildebene parallel zur $x
   1345      z$-Ebene ist. Das Koordinatessystem der Bildebene sei 
   1346      $
   1347        vec(0, delta, 0), vec(1,0,0), vec(0,0,1)
   1348      $
   1349      Dann hat $x = [x y z]^t$ das Bild
   1350      $
   1351        y := vec(xi, eta) = vec(x, z) delta / y
   1352      $
   1353    ])
   1354 #card(
   1355   question: [Wie kann sie mit Matrizen beschrieben werden?],
   1356   answer: [
   1357     In homogenen Koordinten sieht dies so aus:
   1358     $
   1359     bb(y) = vec(1, xi, eta) omega = vec(y, x delta, z delta) phi = mat(0, ,
   1360     1,;0, delta,,;0,,,delta) vec(1,x,y,z) phi = P bb(x)
   1361     $
   1362 ])
   1363 #card(
   1364   question: [Was ist die Fokaldistanz und was ist der Hauptpunkt?],
   1365   answer: [
   1366     Die Fokaldistanz $delta$ ist der Abstand der Bildebene zur Kamera und
   1367     kontrolliert die Bildgröße.
   1368 
   1369     Der Punkt $h$ der Bildebene, wo der Projektionsstrahl/das Auge senkrecht zur
   1370     Bildebene ist, heißt Hauptpunkt. 
   1371 ])
   1372 == Kamerabewegung
   1373 #card(
   1374   question: [Wie stellt sich eine Zentralprojektion in Matrizen dar,
   1375 wenn das Objekt- und Kamerasystem verschieden sind?],
   1376   answer: [
   1377     #TODO()[Bild]
   1378 
   1379     Im Allgemeinen ist das Kamerasystme mit dem Koordinatenvektoren $dash(x) =
   1380     [xi delta eta]^t$ des Objektsystems bezogen, sondern über eine allgemeine
   1381     Koordinatentransformation $x = c + [c_1 c_2 c_3] dash(x)$, wobei sich die
   1382     $c$'s wie $x$ auf das Objektsystem beziehen. Wir fassen die
   1383     Koordinatentransformation mit Matrizen als $x = c + C dash(x)$ oder kürzer
   1384     als $bb(x) = mat(1, o^t; c, C) dash(bb(x)) = bb(C) dash(bb(x))$ zusammen.
   1385     Das zentralperspektivische Bild von $x$ hat somit die homogene Darstellung
   1386     $bb(y) = bb(T P C)^(-1) bb(x) = bb(A)$, wobei $bb(T)$ zusätzlch eine
   1387     Translation des Bildsystems beschreibt. 
   1388 
   1389     Weil $C$ orthonormal ist, folgt $bb(C)^(-1) = mat(1, o^t; -C^t c, C^t)$. 
   1390 ])
   1391 == Fluchtpunkte
   1392 #card(
   1393   question: [Was versteht man unter Fluchtpunkten, de Spur, Horizont,
   1394 Verschwindungsebene und Fluchtdreieck?],
   1395   answer: [
   1396     Eine Gerade 
   1397     $
   1398     cal(G): x &= p + v lambda
   1399          bb(x)&= vec(1, p) + vec(0, v) lambda = bb(p) + bb(v) lambda
   1400     $
   1401     wird auf die Gerade $cal(G)': bb(A p) + bb(A v) lambda$ abgebildet, wobei
   1402     $bb(A)$ die Abbildungsmatrix ist. Dabei stellt $bb(A v)$ das Bild des
   1403     Fernpunkts $f_(cal(G))$ von $cal(G)$ dar. Es ist der Fluchtpunkt von
   1404     $cal(G)$ bzw. von $cal(G)'$.
   1405 
   1406     Die Fluchtpunkte (der Geraden) einer Ebene $cal(E)$ bilden deren
   1407     Fluchtgeraden oder, wenn $cal(E)$ horizontal ist, deren Horizont. 
   1408 
   1409     Der Schnitt einer Ebene $cal(E)$ mit der Bildebene heißt die Spur von
   1410     $cal(E)$. Sie ist parallel zu Fluchtgeraden von $cal(E)$. 
   1411 
   1412     Die Ebene $cal(V)$ parallel zur Bildebene durch das Auge heißt
   1413     Verschwindungsebene. Sie wird auf die Ferngerade der Bildebene abgebildet,
   1414     aber das Auge hat kein Bild. 
   1415 ])
   1416 #card(
   1417   question: [Wann sind Fluchtpunkte Fernpunkte?],
   1418   answer: [
   1419     Ist $cal(G)$ parallel zur Bildebene, ist ihr Fluchtpunkt ein Fernpunkt der
   1420     Bildebene. 
   1421 ])
   1422 #card(
   1423   question: [Wo schneiden sich Spur und Fluchtgeraden einer Ebene?],
   1424   answer: [
   1425     
   1426 ])
   1427 == Der Hauptsatz
   1428 #card(
   1429   question: [Erklären Sie, was die Spalten und Elemente der Matrix
   1430 einer Zentralperspektive bedeuten!],
   1431   answer: [
   1432     Eine Zentralperspektive hat die Darstellung $bb(y) = bb(A x)$ und
   1433     ausführlicher
   1434     $
   1435       vec(epsilon, y) rho = mat(1 alpha, epsilon_1 alpha_1, epsilon_2 alpha_2, 
   1436       epsilon_3 alpha_3; a alpha, a_1 alpha_1, a_2 alpha_2, a_3 alpha_3) vec(e,
   1437     x)
   1438     $
   1439     wobei $epsilon, epsilon_1, epsilon_2, epsilon_3, e in {0,1}$ und $alpha_i !=
   1440     0 != alpha$. Dabei wird vorausgesetzt, dass $[1, o]^t$ nicht in der
   1441       Verschwindungsebene liegt. 
   1442 
   1443       Die Spalten von $bb(A)$ repräsentieren das Bild des Objektsystems, $a$ das
   1444       Bild des Ursprungs $[1, o]^t$ und $[epsilon_i, a_i]^t$ den Fluchtpunkt
   1445       $f_i$ der i-Achse. 
   1446   ])
   1447 == Kameradaten
   1448 #card(
   1449   question: [ Wie erhält man die Verschwindungsebene, den
   1450 Hauptrichtungsvektor, den Hauptpunkt und die
   1451 Fokaldistanz aus der Matrix einer Zentralperspektive?],
   1452   answer: [
   1453     Die Verschwindungsebene hat die Gleichung $
   1454     epsilon rho &= epsilon_1 alpha_1 x + epsilon_2 alpha_2 y + epsilon_3 alpha_3 z + alpha e \
   1455                 &= [alpha epsilon_1 alpha_1, epsilon_2 alpha_2, epsilon_3,
   1456                 alpha_3] vec(e, x, y, z) \
   1457                 &= 0
   1458     $
   1459     und den nicht normierten Normalenvektor $n:= [epsilon_1 alpha_1, epsilon_2,
   1460     alpha_2, epsilon_3 alpha_3]$. Seine Vielfachen $n rho$ mit $rho != 0$ sind
   1461     die Hauptrichtungsvektoren. Das Auge $c$ wird durch den Lösung von $bb(A c)
   1462     = bb(o)$ repräsentiert und der Hauptpunkt durch $bb(h) = bb(A) vec(0, n)$,
   1463     woraus $h = sum a_i lambda_i$ mit $lambda_i = (epsilon_i alpha_i^2)/(n^t n)$
   1464     folgt. 
   1465 
   1466     Die Fokaldistanz $delta$ lässt sich aus dem Hauptrichtungsvektor $n$ und
   1467     einem Vektor $v$ im Winkel von 45° zu $n$ ermitteln, da sie dem Abstand von
   1468     $f lt.tri bb(A v)$ zu $h$ entspricht. 
   1469 ])
   1470 #card(
   1471   question: [Warum ist der Hauptpunkt der Höhenpunkt des
   1472 Fluchtdreiecks?],
   1473   answer: [
   1474     Jede $(3 times 4)$-Matrix $bb(A) = mat(1, alpha_1, alpha_2, alpha_3; a, a_1
   1475     alpha_1, a_2 alpha_2, a_3 alpha_3)$ vom Rang 3 repräsentiert eine
   1476     3-Punkt-Perspektive genau dann, wenn $h = sum a_i a_i^2 / (a_1^2 + a_2^2 +
   1477     a_3^2)$
   1478     der Höhepunkt des Dreiecks $a_1 a_2 a_3$ ist. 
   1479 
   1480     Diese Bedingung ergibt sich aus Abschnitt 4.6 und sie beinhaltet zwei
   1481     Bedingungen, nämlich je eine für beide Koordinaten von h. Im Übrigen ist das
   1482     Fluchtdreieck einer 3-Punkt-Perspektive immer spitzwinklig, da alle $alpha_i
   1483     > 0$, weswegen der Hauptpunkt im Dreiecksinneren liegt.
   1484 ])
   1485 == Fluchtpunkte des Systems
   1486 #card(
   1487   question: [Was ist eine i-Punkt-Perspektive und wie kann man
   1488 erkennen, ob und welche i-Punkt-Perspektive eine Matrix
   1489 darstellt?],
   1490   answer: [
   1491     Die Matirx $bb(A) = mat(epsilon_0 alpha, epsilon_1 alpha_1, epsilon_2
   1492     alpha_2, epsilon_3 alpha_3; a alpha, a_1 alpha_1, a_2 alpha_2, a_3 alpha_3)$
   1493     (vom Rang 3), repräsentiert eine i-Punkt-Perspektive, wobei $i = epsilon_1 +
   1494     epsilon_2, epsilon_3$. 
   1495 
   1496     0-Punkt: $epsilon_i = 0$ \
   1497     1-Punkt: $epsilon_2 = 1, norm(a_1) = norm(a_3), a_1  bot a_3$ \
   1498     2-Punkt: $epsilon_1 = epsilon_2 = 1, a_3 bot a_2 - a_1, norm(a_3) sqrt(a_1^1
   1499     + a_2^2) = abs(alpha_1 alpha_2) norm(a_2 - a_1)$ \
   1500     3-Punkt: $epsilon_{1,2,3} = 1, h = sum a_i alpha_i^2 / (alpha_1^2 +
   1501     alpha_2^2 + alpha_3^2)$ der Höhenpunkt des Dreiecks $a_1 a_2 a_3$ ist. 
   1502 ])
   1503 == Urbilder
   1504 #card(
   1505   question: [Wie berechnet man das Urbild eines Punkts und einer
   1506 Geraden unter einer Zentralperspektive?],
   1507   answer: [
   1508     Möchten wir bei bekannter Matrix $bb(A)$ einer Zentralprojektion zu einem
   1509     gegbenen Bildpunkt $y$ den Urbildpunkt $x$ bestimmen, haben wir diese drei
   1510     Gleichungen für vier Unbekannte zu läsen: $bb(A) vec(1, x) omega = vec(1,
   1511     y)$. 
   1512 
   1513     Eine Gerade $cal(V): bb(v)^t bb(y) = 0$ der Bildebene hat die Ebene $cal(U)
   1514     : bb(v)^t bb(A) vec(1,x) xi = bb(u)^t vec(1, x) xi = 0$ als Urbild und, wenn
   1515     wir $xi$ jeweils streichen, erhalten wir über zwei Geraden durch $y$ zwei
   1516     Gleichungen für die rdei Koordinaten des gesuchten Punkts $x$. Weitere
   1517     Geraden durch $y$ sind von den ersten beiden abhängig und führen nur zu
   1518     abhängigen Gleichungen. 
   1519 ])
   1520 
   1521 == Kamerakalibrierung
   1522 #card(
   1523   question: [Wie kann man die Matrix bestimmen, die zu einem
   1524 zentralperspektivischen Bild gehört?],
   1525   answer: [
   1526     Die Gleichung $bb(v)^t bb(A) = sum v_i a_(i j) x_j = 0$ ist linear in den 12
   1527     Matrixelemenden $a_(i j)$. Kennt man sechts Pankte $x$ und ihre Bilder $y$,
   1528     kann man $bb(A)$ folglich daraus berchenen. 
   1529 
   1530     Da $bb(A)$ homogen ist und zwei Bedingungen genügt, reichen zur Bestimmung
   1531     von $bb(A)$ sogar nur 4,5 Pankte, d.h. vier Punkte mit je zwei Geraden und
   1532     ein Punkt mit einer Geraden. Mehr zu kennen hilft aber numerische Fehler
   1533     entgegenzuwirken. Man bekommt dann überbestimmte Gleichungssysteme, die mit
   1534     Hilfe der Methode der kleinsten Quadrate gelöst werden. 
   1535 ])
   1536 #card(
   1537   question: [Wie viele Freiheitsgrade hat man für diese Matrizen und
   1538 was sind ihre Dimensionen?],
   1539   answer: [
   1540     
   1541 ])
   1542 = Projektive Geometrie
   1543 == Projektive Räume
   1544 #card(
   1545   question: [Was ist ein projektiver Raum?],
   1546   answer: [
   1547     Die eigentlichen und uneigentlichen Punkte des $cal(A)^n$ bilden den
   1548     projektiven Raum $cal(P)^n$ bzw die projektive Erweiterung des $cal(A)^n$. 
   1549 ])
   1550 #card(
   1551   question: [Was sind die projektiven Unterräume?],
   1552   answer: [
   1553     Der $cal(P)^n$ wird durch die Menge der eindimensionalen Unterräume des
   1554     $bb(R)^(n+1)$ repräsentiert und die projektiven Unterräume von $cal(P)^n$
   1555     durch die linearen Unterräume des $bb(R)^(n+1)$. Die eindimensionalen
   1556     Unterräume des $bb(R)^(n+1)$ stellen die Punkte des $cal(P)^n$ dar. 
   1557 
   1558     Stellt ein Unterraum $U subset bb(R)^(n+1)$ den Unterraum $U subset
   1559     cal(P)^n$ dar, gilt $dim cal(U) := dim U -1$. Ein Unterraum $cal(U)$ der
   1560     Dimension $-1,0,1,2,n-1$ ist leer oder wird Punkt, eine Gerade, eine Ebene
   1561     bzw. eine Hyperebene genannt. 
   1562 
   1563     Der Schnitt zweier projektiven Unterräume $cal(U)$ und $cal(V)$ ist der
   1564     projektive Unterraum $cal(U) inter.sq cal(V) := cal(U) inter cal(V)$ und
   1565     ihre Verbindung $cal(U) union.sq cal(V)$ der kleinste projektive Unterraum,
   1566     der $cal(U)$ und $cal(V)$ enthält. 
   1567 ])
   1568 #card(
   1569   question: [Warum schneiden sich zwei Geraden einer projektiven
   1570 Ebene immer?],
   1571   answer: [
   1572     (Alle Hyperebenen gehen durch den Ursprung des $cal(A)^n$)
   1573 ])
   1574 == Projektive Koordinaten
   1575 #card(
   1576   question: [Wann heißt eine Punktfolge projektiv unabhängig?],
   1577   answer: [
   1578     Die Folge $mono(p)_0 ... mono(p)_r$ heißt projektiv unabhängig genau dann,
   1579     wenn die Folge $bb(p)_0...bb(p)_r subset bb(R)^(n+15$ linear unabhängig ist. 
   1580 ])
   1581 #card(
   1582   question: [Wie ist die projektive Hülle von Punkten definiert?],
   1583   answer: [
   1584     Die projektive Hülle oder der Aufspann von $mono(p)_0 ... mono(p)_r$ ist der
   1585     projektive Unterraum $<mono(p)_0 ... mono(p)_r> := { mono(x) | bb(x) in
   1586     [bb(p)_0 .. bb(p)_r] bb(R)^(r+1) \\ { bb(o) } }$. 
   1587 ])
   1588 #card(
   1589   question: [Wie sind projektive Koordinaten definiert?],
   1590   answer: [
   1591     Wir bemereken, dass jedes projektive Grundeck im $cal(P)^n$ eindeutig ein
   1592     Koordinatensystem im $bb(R)^(n+1)$ bestimmt. Für die Angabe von Koordinaten
   1593     im $cal(P)^(n+1)$ reicht es, nur ein Grundeck im $cal(P)^n$ anzugeben,
   1594     sodass wir uns ganz vom $bb(R)^(n+1)$ lösen können. Wir nennen die
   1595     Koordinaten eines Punktes deshalb auch projektive Koordinaten bezüglich
   1596     eines Grundecks. Sind $x_i$ die projektiven Koordinaten eines Punkts
   1597     $mono(x)$ bezüglich $mono(p)_0 ... mono(p)_n mono(p)$ schreiben wir auch
   1598     $mono(x) = mono(p)_0 x_0 + ... + mono(p)_n x_n$. 
   1599 ])
   1600 #card(
   1601   question: [Was ist eine projektive Skala?],
   1602   answer: [
   1603     Seien $x_0$ und $x_1$ die projektiven Koordinaten eines Punkts $mono(x)$
   1604     bezüglich eines Grundecks $mono(p)_0 mono(p)_1 mono(p)$. Dann bilden die
   1605     Quotienten $x = x_1 / x_0$ für alle $mono(x) in mono(p)_0 union.sq
   1606     mono(p)_1$ die projektive Skala bezüglich $mono(p)_0 mono(p_1) mono(p)$. 
   1607 ])
   1608 #card(
   1609   question: [Wann ist eine projektive Skala eine affine?],
   1610   answer: [
   1611     Ist $mono(p) mono(p)_0 mono(p)_1$ ein projektives Grundeck in einer
   1612     projektiv erweiterten affinen Gerade mit Fernpunkt $mono(p)_1$, ist die
   1613     porjektive Skala $x$ bezüglich $mono(p) mono(p)_0 mono(p)_1$ auch eine
   1614     affinie Skala, die den affinen Koordinaten der Punkte $mono(x)$ bezüglich
   1615     des affinen Koordinatensystems $mono(p)_0 (mono(p) - mono(p)_0)$ entspricht. 
   1616 ])
   1617 == Koordintentransformation
   1618 #card(
   1619   question: [Wie können projektive Koordinaten in projektive
   1620 Koordinaten bezüglich eines anderen Grundecks
   1621 transformiert werden?],
   1622   answer: [
   1623     Seien $mono(p)_0 ... mono(p)_n mono(p)$ und $mono(q)_0 ... mono(q)_n
   1624     mono(q)$ Grundecke des $cal(P)^n$ und sei 
   1625     $
   1626       bb(p) = & [ bb(p)_0 ... bb(p)_n] bb(e) = bb(P e) \
   1627       bb(q) = & [ bb(q)_0 ... bb(q)_n] bb(e) = bb(Q e) \
   1628       bb(x) = & bb(P x)_p = bb(Q x)_q
   1629     $
   1630     Dann ist $bb(x)_q = bb(Q)^(-1) bb(P) bb(x)_p$ eine
   1631     Koordinatentransformation. Dabei repräsentiert $bb(Q)^(-1) bb(P)$ die
   1632     Grundpunkte $mono(p)_i$ bezüglich des Grundecks $mono(q)_0 ... mono(q)_n
   1633     mono(q)$. 
   1634 ])
   1635 #card(
   1636   question: [Wie ändern sich bei einer Koordinatentransformation die
   1637 Koordinaten von Hyperebenen?],
   1638   answer: [
   1639     Eine Hyperebene $cal(U): bb(u)^t bb(x) = 0$ hat bezüglich des Gundecks
   1640     $mono(q)_0... mono(q)_n mono(q)$ die Darstellung $bb(u)^t bb(Q) bb(x)_q =:
   1641     bb(u)^t_q bb(x)_q = 0$. Also ist $bb(u)_q = bb(Q)^t bb(u)$ die
   1642     Transformation des homogenen Hyperebenen-Koordinatenvektors $bb(u)$ in den
   1643     bezüglich des Grundecks $mono(q)_0... mono(q)_n mono(q)$. 
   1644 ])
   1645 #card(
   1646   question: [Warum kann jede Hyperebene eines projektiven Raums
   1647 als Fernhyperebene aufgefasst werden?],
   1648   answer: [
   1649     Die Grundpunkte $mono(q)_1, ..., mono(q)_n$ liegen in der Hyperebene
   1650     $cal(U)$ genau dann, wenn $bb(u)^t_q ~ [1 0 ... 0]$. D.h. bezüglich des
   1651     Grundecks $mono(q)_0 ... mono(q)_n mono(q)$ kann $cal(U)$ als die
   1652     Fernhyperebene einer projektiven Erweiterung des $cal(A)^n$ aufgefasst
   1653     werden. Da $cal(U)$ eine beliebige Hyperebene ist, kann auch jede andere
   1654     Hyperebene als Fernhyperebene aufgefasst werden. 
   1655 ])
   1656 == Der Dualraum
   1657 #card(
   1658   question: [Was ist der Dualraum eines projektiven Raums?],
   1659   answer: [
   1660     Die Hyperebenen des $cal(P) := cal(P)^n$ bilden einen projektiven Raume, der
   1661     Dualraum von $cal(P)^n$ genannd und mit $cal(P)^*$ bezeichnet wird. 
   1662 ])
   1663 #card(
   1664   question: [Was heißt alles dual zueinander?],
   1665   answer: [
   1666     Ein Punkt $mono(u)$ und eine Hyperebene $cal(U)$ med dem glichen homogenen
   1667     Koordinatenvektoren $bb(u)$ heißen dual zueinander. 
   1668 ])
   1669 #card(
   1670   question: [Wie kann man den Schnitt von n Hyperebenen des $cal(P)^n$ berechnen?],
   1671   answer: [
   1672     Ein Unterraum $cal(A) := mono(a)_0 union.sq ... union.sq mono(a)_k subset
   1673     cal(P)$ geht beim Dualisieren in den Unterraum $cal(A)^* := cal(A)_0
   1674     union.sq ... union.sq cal(A)_k subset cal(P)^*$ über, aber meist stellt man
   1675     den Unterraum $cal(A)^*$ durch den polaren Unterraum $cal(A)̧̃° := cal(A)_0 inter
   1676     ... inter cal(A)_k subset cal(P)$ dar und bezeichnet auch $cal(A)°$ als den
   1677     zu $cal(A)$ dualen Unterraum. 
   1678 
   1679     Die Hyperebene $cal(U) = mono(a)_1 union.sq ... union.sq mono(a)_n : bb(u)^t
   1680     = [bb(a)_1 and ... and bb(a)_n]^t$ ist dual zum Punkt $cal(U)^* = cal(A)_1
   1681     inter.sq ... inter.sq cal(A)_n = { mono(u)}: bb(u) = bb(a)_1 and ... and
   1682     bb(a)_n$.
   1683 ])
   1684 == Projektive Abbildungen
   1685 #card(
   1686   question: [Was ist eine projektive Abbildung?],
   1687   answer: [
   1688     Jede lineare Abbildung $phi : bb(R)^(m+1) -> bb(R)^(n+1), bb(x) |-> bb(A
   1689     x)$, induziert eine projektive Abbildung $Phi: cal(P)^m -> cal(P)^n$, die
   1690     durch die gleiche Matrix $bb(A)$ wie $phi$ dargestellt wird: $mono(y) =
   1691     Phi(mono(x)) : bb(A x) = [bb(a)_0 .. bb(a)_m] bb(x)$. 
   1692 
   1693     Dabei repräsentieren die Koordinatenvektoren $bb(a)_0...bb(a)_m (bb(a)_0 +
   1694     ... bb(a)_m)$ die Bilder des Koordinaten-Grundecks. 
   1695 ])
   1696 #card(
   1697   question: [Wann hat eine projektive Abbildung einen ausnahmeraum
   1698 und wie ist er definiert?],
   1699   answer: [
   1700     Die projektive Abbildung $Phi$ heißt regulär oder Projektivität, wenn
   1701     $bb(A)$ eine reguläre Matrix ist. Der Kern der Matrix repräsentiert den
   1702     Ausnahmeraum $cal(A)_Phi := "kern" bb(A) = {bb(x) | bb(A x) = bb(o)}$ von
   1703     $Phi$. Es ist der Raum, der durch $Phi$ auf den Unpunkt abgebildet wird. 
   1704 ])
   1705 #card(
   1706   question: [Auf was bilden projektive Abbildungen projektive Unterräume ab?],
   1707   answer: [
   1708     Projektivitäten bilden projektive Unterräume auf projektive Unterräume ab
   1709     und allgemein bildet eine projektive Abbildung $Phi$ jeden projektiven
   1710     Unterraum $cal(U)$ ohne den Ausnahmeraum auf einen projektiven Unterraum ab:
   1711     $Phi: cal(U) \\ cal(A)_Phi |-> Phi(cal(U) \\ cal(A)_Phi)$. 
   1712 
   1713     Zu zwei Grundecken $mono(p)_0...mono(p)_n mono(p)$ und
   1714     $mono(q)_0...mono(q)_n mono(q)$ zweier projektiver Räume gibt es genau eine
   1715     Projektivität $Phi$, die das erste auf das zweite abbildet, d.h. die
   1716     $Phi(mono(p)_i) = mono(q)_i$ und $Phi(mono(p)) = mono(q)$ erfüllt. 
   1717 ])
   1718 == Kollineationen und Korrelationen
   1719 #card(
   1720   question: [Was sind Kollineationen und Korrelationen?],
   1721   answer: [
   1722     Projektivitäten $Phi: cal(P) -> cal(P)$ heißen Kollineationen, weil sie
   1723     kollineare Punkte auf kollineare Punkte abbliden, und Projektivitäten $Phi:
   1724     cal(P) -> cal(P)^*$ heißen Korrelationen. 
   1725 ])
   1726 #card(
   1727   question: [Wie ist Dualität allgemein definiert?],
   1728   answer: [
   1729     Die Dualitätsdefinition besagt, dass eine Figur, d.h. ein aus Unterräumen
   1730     eines projektiven Raums besthendes Gebilde, dual zu einer zweiten ist, wenn
   1731     sie durch eine Korrelation in diese überführt werden kann. 
   1732 ])
   1733 #card(
   1734   question: [Wie lautet der Satz von Desargues und wie der dazu duale
   1735 Satz?],
   1736   answer: [
   1737     Sind die Ecken zweier Dreiecke in perspektivischer Lage, dann sind es auch
   1738     ihre Kanten. 
   1739 
   1740     (Sind die Kanten zweier Dreiecke in perspektivischer Lage, dann sind es auch
   1741   ihre Ecken. )
   1742 ])
   1743 == Linear rationale Transformationen
   1744 #card(
   1745   question: [Wie lassen sich Projektivitäten zwischen zwei Geraden
   1746 darstellen?],
   1747   answer: [
   1748     Eine Projektivität zwischen zwei Geraden hat die Darstellung $vec(y_0, y_1)
   1749     = mat(a, b; c, d) vec(x_0, x_1)$ oder nach Inhomogenisierung die Darstellung
   1750     $y_1 / y_0 = (c x_0 + d x_1) / (a x_0 + b x_1) = (c + d x_1 / x_0) / (a + b
   1751   x_1 / x_0)$ bzw., wenn wir die projektiven Skalen $x = x_1 / x_0$ und $y = y_1
   1752   / y_0$ verwenden, die Darstellung $y = (c x_0 + d x_1) / (a x_0 + b x_1) = (c
   1753     + d x) / (a + b x)$. Letztere ist eine linear-rationale Transformation der
   1754       projektiven Skala $x$. 
   1755 ])
   1756 == Das Doppelverhältnis
   1757 #card(
   1758   question: [Was ist das Doppelverhältnis?],
   1759   answer: [
   1760     Hier betrachen wir vier Punkte $mono(a), mono(b), mono(x)$ und $mono(y)$
   1761     einer Geraden mit den projektiven Skalenwerten $alpha, beta, xi$ und $eta$
   1762     bzgl. irgendeines Grundecks.
   1763 
   1764     #cetz.canvas({
   1765       import cetz.draw: *
   1766 
   1767       line((0,0), (7.5, 0))
   1768       content((), [projektive Skala], anchor: "south-east")
   1769 
   1770       circle((1,0), radius: .08, fill: white)
   1771       content((), $alpha$, padding: .2, anchor: "south")
   1772       content((), $mono(a)$, padding: .2, anchor: "north")
   1773 
   1774       circle((2,0), radius: .08, fill: white)
   1775       content((), $eta$, padding: .2, anchor: "south")
   1776       content((), $mono(y)$, padding: .2, anchor: "north")
   1777 
   1778       circle((3.5,0), radius: .08, fill: white)
   1779       content((), $beta$, padding: .2, anchor: "south")
   1780       content((), $mono(b)$, padding: .2, anchor: "north")
   1781 
   1782       circle((4.5,0), radius: .08, fill: white)
   1783       content((), $xi$, padding: .2, anchor: "south")
   1784       content((), $mono(x)$, padding: .2, anchor: "north")
   1785     })
   1786 
   1787     Das Doppelverhaltnis der Punktpaare $mono(x y)$ und $mono(a b)$ ist der Wert
   1788     $delta = D V [mono(x y) | mono(a b)] := (xi - alpha) / (xi - beta) : (eta -
   1789   alpha) / (eta - beta)$. 
   1790 ])
   1791 
   1792 #card(
   1793   question: [Warum sind Doppelverhältnisse invariant unter projektiven Abbildungen?],
   1794   answer: [
   1795     Weil die Matrix einer projektiven Abbildung $Phi$ die Einheitsmatrix ist,
   1796     wenn wir sie für die Urbild- und Bildkoordinaten bezüglich des Grundecks
   1797     $mono(a b y)$ bzw $Phi(mono(a)) Phi(mono(b)) Phi(mono(y))$ beschreiben,
   1798     ändern projektive Abbildungen Doppelverhältnisse nicht. Doppelverhälnisse
   1799     treten daher im projektiven Raum an die Stelle der Teilverhaltnisse, da
   1800     letztere nur affine Invarientan sind. 
   1801 ])
   1802 #card(
   1803   question: [Was ist das harmonische Doppelverhältnis?],
   1804   answer: [
   1805     Für das harmonische Doppelverhaltnis $delta = -1$ liegen $mono(x y)$ und
   1806     $mono(a b)$ in harmonischer Lage. 
   1807   ])
   1808 #card(
   1809   question: [Was bedeutet harmonische Lage von vier kollinearen
   1810 Punkten, wenn einer von ihnen ein Fernpunkt ist?],
   1811   answer: [
   1812     Für $delta = - 1$ liegen $mono(x y)$ und $mono(a b)$ in harmonischer Lage. 
   1813 
   1814     Ist $mono(b)$ ein Fernpunkt, ist $delta$ eine affine Skala und für $delta =
   1815     -1$ ist $mono(a) = (mono(x) + mono(y)) /2$.
   1816 
   1817 
   1818     #cetz.canvas({
   1819       import cetz.draw: *
   1820 
   1821       line((0,0), (4, 0))
   1822       content((), [affine Skala], padding: .2, anchor: "south")
   1823 
   1824       circle((0.5,0), radius: .08, fill: white)
   1825       content((), $-1$, padding: .2, anchor: "south")
   1826       content((), $mono(x)$, padding: .2, anchor: "north")
   1827 
   1828       circle((1.5,0), radius: .08, fill: white)
   1829       content((), $0$, padding: .2, anchor: "south")
   1830       content((), $mono(a)$, padding: .2, anchor: "north")
   1831 
   1832       circle((2.5,0), radius: .08, fill: white)
   1833       content((), $1$, padding: .2, anchor: "south")
   1834       content((), $mono(y)$, padding: .2, anchor: "north")
   1835 
   1836       line((5,0), (6, 0), mark: (end: ">"))
   1837       content((), $oo$, padding: .2, anchor: "south")
   1838       content((), $mono(b)$, padding: .2, anchor: "north")
   1839     })
   1840 ])
   1841 #card(
   1842   question: [Unter welchen Vertauschungen ist das harmonische Verhältnis invariant?],
   1843   answer: [
   1844     Das harmonische Doppelverhaltnis $delta = -1$ ist invariant gegenüber den
   1845     Vertauschungen $mono(x) <-> mono(y), mono(x y) <-> mono(a b), mono(a) <->
   1846     mono(b)$. 
   1847 ])
   1848 == Die duale Abbildung
   1849 #card(
   1850   question: [Was ist die duale Abbildung?],
   1851   answer: [
   1852     Sei $Phi: cal(X) -> cal(Y), bb(x) |-> bb(A x)$ eine projektive Abbildung.
   1853     NUter ihr hat eine Hyperebene $cal(V): bb(v)^t bb(y) = 0$ von $cal(Y)$ das
   1854     Urbild $Phi^- cal(V) = { mono(x) in cal(X) | bb(v)^t bb(A x) = 0} : bb(u)^t
   1855     = bb(v)^t bb(A)$. Die Abbildung $Phi^* : cal(Y)^* -> cal(X)^*, bb(v)^t |->
   1856     bb(A)^t bb(v)$ ist die duale Abbildung zu $Phi$. Ist sie bijektiv, bildet
   1857     ihre Inverse jede Hyperebene $cal(U)$ auf die Hyperebene $cal(V)$ ab, in die
   1858     $Phi$ alle Punkte von $cal(U)$ abbildet. 
   1859 
   1860     Da $A^(t t) = A$, ist die duale Abbildung $Phi^(* *)$ der dualen Abbildung
   1861     $Phi^*$ wieder die Ausgangsabbildung $Phi$. 
   1862 ])
   1863 == Quadriken
   1864 #card(
   1865   question: [Was ist eine Quadrik?],
   1866   answer: [
   1867     Eine Quadrik im $cal(P)^n$ besteht aus den Punkten $mono(x)$, deren homogene
   1868     Koordinatenvektioren $bb(x)^t = [epsilon, mono(x)^t] x_0$ eine quadratische
   1869     Gleichung erfüllen:
   1870     $
   1871     cal(Q)(bb(x)) &= bb(x)^t bb(Q x) \
   1872                  &= [epsilon x_0, mono(x)^t x_0] mat(q, mono(q)^t; mono(q), Q)
   1873                  vec(epsilon x_0, mono(x) x_0) \
   1874                  &~ mono(x)^t Q mono(x) + 2 epsilon mono(q)^t mono(x) + q epsilon^2 \
   1875                  &= 0
   1876     $
   1877 
   1878 ])
   1879 #card(
   1880   question: [Warum können wir annehmen, dass die Matrix einer
   1881 Quadrik symmetrisch ist?],
   1882   answer: [
   1883     Da $bb(Q) + bb(Q)^t$ ebenfalls $cal(Q)$ repräsentiert, nehmen wir ohne
   1884     Einschränkung der Allgemeinheit an, dass $bb(Q) = bb(Q)^t$ symmetrisch ist. 
   1885 ])
   1886 #card(
   1887   question: [Was ist die Fernquadrik und der affine Teil einer
   1888 projektiven Quadrik?],
   1889   answer: [
   1890     Für $epsilon = 1$, erhäld man den affinen Teil $cal(Q)_"aff"$ von $cal(Q)$
   1891     und für $epsilon = 0$ die Fernquadrik $cal(Q)_oo$. Die Fernpunkte von
   1892     $cal(Q)$ heißen asymptotic directions und $cal(Q) = cal(Q)_"aff" union
   1893     cal(Q)_oo$ auch projektive Erweiterung von $cal(Q)_"aff"$. Die Quadrik
   1894     $cal(Q)$ heißt regulär, wenn ihre Matrix $bb(Q)$ regulär ist. 
   1895 ])
   1896 #card(
   1897   question: [Was ist eine Quadrik in einer projektiven Gerade?],
   1898   answer: [
   1899     
   1900 ])
   1901 == Tangential- und Polarebenen
   1902 #card(
   1903   question: [Wie berechnet man die Tangentenquadrik einer Quadrik?],
   1904   answer: [
   1905     Um die Tangentialebenen (genauer Tangentialhyperebenen) einer Quadrik
   1906     $cal(Q)$ zu bestimmen, betrachten wir zunächst einen Punkt $mono(p)$ der
   1907     Quadrik $cal(Q)$ und einer Geraden $cal(T): bb(x) = bb(p) + bb(q) lambda$
   1908     des $cal(P)^n$. (Dabei stellt $lambda = lambda_1 / lambda_0$ eine projektive
   1909     Skala auf $cal(T) : bb(x) = bb(p) lambda_0 + bb(q) lambda_1$ dar.) Nur wenn
   1910     die Gerade $cal(T)$ die Quadrik allein im Punkt $mono(p)$ berührt oder ganz
   1911     auf der Quadrik liegt ist sie eine Tangente. Folglich ist $cal(T)$ Tangente
   1912     genau dann, wenn die quadratische Gleichung
   1913     $
   1914       cal(Q)(bb(x)(lambda)) &= bb(x)^t bb(Q x) \
   1915                             &= bb(p)^t bb(Q p) + 2 bb(p)^t bb(Q q) lambda + bb(q)^t bb(Q q) lambda^2 \
   1916                             &= 2 bb(p)^t bb(Q p) lambda + bb(q)^t bb(Q q) lambda^2 \
   1917                             &= 0
   1918     $
   1919     eine doppelte Nullstelle $lambda = 0$ hat. Somit ist $cal(T)$ Tangente von
   1920     $cal(Q)$ genau dann, wenn $bb(p)^t bb(Q q) = 0$. Weiter folgt, dass die
   1921     Tangentialebene von $cal(Q)$ in $mono(p)$ die Qleichung $bb(u)^t bb(x) =
   1922     bb(q)^t bb(Q x) = 0$ hat. 
   1923 ])
   1924 #card(
   1925   question: [Was sind Polarebenen?],
   1926   answer: [
   1927     Für einen beliebigen Punkt $mono(p) in cal(P)^n$, definiert die Gleicuhng
   1928     $bb(p)^t bb(Q x) = 0$ die Polarebene (oder eigentlich Polarhyperebene)
   1929     $cal(P)(mono(p), cal(Q))$ von $mono(p)$ bezüglich $cal(Q)$, sofern $mono(p)$
   1930     kein singulärer Punkt ist. Sie schneidet $cal(Q)$ in den Punkten $mono(x)$,
   1931     deren Tangentialebenen $cal(T) lt.tri bb(Q x)$ auch durch $mono(p)$ gehen.
   1932     Liegt $mono(p)$ auf $cal(Q)$, ist die Polarebene die Tangentialebene von
   1933     $cal(Q)$ in $mono(p)$. 
   1934 ])
   1935 #card(
   1936   question: [Was bilden die Tangentialebenen einer Quadrik?],
   1937   answer: [
   1938     Auch die Tangentialebenen einer Quadrik $cal(Q)$ bilden eine Quadrik im
   1939     Dualraum. Dazu macht man sich klar, dass ein $bb(u)$ eine Tangentialebene
   1940     von $cal(Q)$ in einem Punkt $mono(p)$ von $cal(Q)$ darstellt, falls das
   1941     homogene lineare Gleichungssystem
   1942     $
   1943       bb(Q p) - bb(u) rho &= bb(o) \
   1944       bb(u)^t bb(p)       &= 0
   1945     $
   1946     für $bb(p)$ und $rho$ lösbar ist, d.h. falls $det mat(bb(Q), bb(u); bb(u)^t,
   1947   0) = 0$. Letzteres ist eine quadratische Gleichung und stellt die duale
   1948      Quadrik $cal(Q)^*$ zu $cal(Q)$ dar. 
   1949 ])
   1950 #card(
   1951   question: [Was ist eine Polaritat?],
   1952   answer: [
   1953     Ist die Matirx $bb(Q)$ regulär, heißt die Korrelation $bb(x) |-> bb(x)^t
   1954     bb(Q)$ die Polarität bezüglich $cal(Q)$. Sie bildet die Punkte von $cal(Q)$
   1955     auf die zugehörigen Tangentialebenen ab und $cal(Q)$ auf die duale Quadrik
   1956     $cal(Q)^*$, deren Punkte $mono(u) lt.tri bb(u) := bb(Q x)$ die Gleichung
   1957     $bb(u)^t bb(Q)^(-1) bb(u) = 0$ erfüllen. Polaritäten sind also Korrelationen
   1958     oder Dualitäten mit symmetrischer Matrix. 
   1959 ])
   1960 #card(
   1961   question: [Ist jede Korrelation eine Polaritat?],
   1962   answer: [
   1963     Polaritäten sind Korrelationen oder Dualitäten mit symmetrischer Matrix. 
   1964 ])
   1965 #card(
   1966   question: [Was bedeutet dies für den Begriff der Dualitat?],
   1967   answer: [
   1968     Bsp. Die Dualität $mono(x) |-> cal(X)$ ist die Polarität zur leeren
   1969     regulären Quadrik $cal(Q) lt.tri bb(E)$. 
   1970 ])
   1971 == Harmonische Punkte und Polaritat
   1972 #card(
   1973   question: [Was ist das Doppelverhaltnis von pq und xy, wenn q auf
   1974 der Polaren von p bezüglich einer Quadrik Q liegt und x
   1975 und y die Schnittpunkte der Geraden pq mit Q sind?],
   1976   answer: [
   1977     
   1978 ])
   1979 == Normalform
   1980 #card(
   1981   question: [Was ist die Normalform einer Quadrik?],
   1982   answer: [
   1983     Mit einer reellen Koordinatentransformation kann die Gleichung einer Quadrik
   1984     $cal(Q)$ in die Normalform $y_0^2 + ... + y_r^2 - y_(r+1)^2 - ... -
   1985     y_(r+s)^2 = 0$ und anschließend mid der komplexen Koordinatentransformation
   1986     $bb(y) = "diag"(1 ... mono(1) i ... i) bb(z)$ in die Normalform $z_0^2 + ... +
   1987     z_(r+s)^2 = 0$ überführt werden. 
   1988 ])
   1989 #card(
   1990   question: [Wie viele projektiv verschiedene Quadriken gibt es im
   1991 reellen projektiven Raum und wie viele im in seiner
   1992 komplexen Erweiterung?],
   1993   answer: [
   1994     
   1995 ])
   1996 = Hyperbolische Geometrie
   1997 == Das hyperbolische Modell
   1998 #card(
   1999   question: [Erklaren Sie das hyperbolische Modell der hyperbolischen Ebene !],
   2000   answer: [
   2001     Im hyperbolischen Modell wird ie hyperbolische Ebene $cal(H)^2$ durch die
   2002     obere Schale des zweischaligen Hyperboloids $cal(O) : mono(x)^t H mono(x) =
   2003     [x, y, z] mat(1,,;,1,;,,-1) vec(x,y,z) = -1, z > 0$ im $bb(R)^3$
   2004     dargestellt. Der asymptotische Kegel $cal(K)$ von $cal(O)$ hat die Gleichung
   2005     $cal(K) : mono(x)^t H mono(x) = 0$ und ist in der Abbildung rot gezeichnet. 
   2006 ])
   2007 #card(
   2008   question: [Was sind in diesem Modell die hyperbolischen Geraden?],
   2009   answer: [
   2010     In diesem Modell sind die hyperbolischen Geraden durch die nicht leeren
   2011     Schnitte von $cal(O)$ mit den zweidimensionalen linearen Unterräumen des
   2012     $bb(R)^3$ gegeben. Es sind Pyperbeläste auf $cal(O)$. 
   2013 ])
   2014 #card(
   2015   question: [Was sind die hyperbolischen Abbildungen in diesem Modell?],
   2016   answer: [
   2017     Die regulären linearen Abbildungen des $bb(R)^3$, die $cal(O)$ auf sich
   2018     abbilden, und ihre Vielfachen repräsentieren die hyperbolischen Abbildungen,
   2019     wen wir sie auf $cal(O)$ beschränken und die Vielfachen der $mono(x) in
   2020     cal(O)$ als homogene Koordinatenvektoren für die Punkte des $cal(H)^2$
   2021     auffassen. Zu diesen linearen Abbildungen gehören under anderem Rotationen
   2022     um die z-Achse und Spiegelungen an Ebenen durch die z-Achste. 
   2023 
   2024     Die hyperbolischen Abbildungen werden durch die Matrizen $A$ repräsentiert,
   2025     für die $A^t H A = rho H$ mit $rho > 0$. 
   2026 
   2027     Da der Kegel $cal(K)$ durch die Gleichung $mono(x)^t rho H mono(x) = 0$
   2028     gegeben ist, stellen die linearen Abbildungen, die den Kegel auf sich
   2029     abbilden, die hyperbolischen Abbildungen dar. 
   2030 ])
   2031 #card(
   2032   question: [Nennen Sie einfache Beispiele für hyperbolische
   2033 Abbildungen in diesem Modell !],
   2034   answer: [
   2035     
   2036 ])
   2037 == Das Klein-Modell
   2038 #card(
   2039   question: [Wie ist das Klein-Modell der hyperbolischen Ebene definiert?],
   2040   answer: [
   2041     Aus dem hyperbolischen Modell der hyperbolischen Ebene erhalten wir durch
   2042     die Zentralprojektion $pi: bb(R)^3 \\ {mono(o)} -> {vec(mono(x), 1) |
   2043     mono(x) in bb(R)^2}, vec(mono(x),z) |-> vec(mono(x)/z, 1)$, das Klein-Modell
   2044     der hyperbolischen Ebene. Die Zentralprojektion $pi$ bildet $cal(O)$ auf die
   2045     offene Einheitskreisscheibe $cal(D) : x^2 + y^2 < 1, z = 1$ ab. 
   2046 ])
   2047 #card(
   2048   question: [Was sind in diesem Modell die hyperbolischen Geraden?],
   2049   answer: [
   2050     Hyperbolische Geraden in bildet die Zentralprojektion $pi$ auf die geraden
   2051     Strecken, die sich ergeben, wenn die Scheibe $cal(D)$ mit den
   2052     zweidimensionalen Unterräumen des $bb(R)^3$ geschnitten wird. 
   2053 ])
   2054 #card(
   2055   question: [Was sind die hyperbolischen Abbildungen in diesem
   2056 Modell?],
   2057   answer: [
   2058     Unter der Projektion $pi$ werden die linearen Abbildungen des $bb(R)^3$ und
   2059     ihre Vielfachen je zu einer linear rationalen Abbildung der Ebene $z = 1$,
   2060     das heißt, dass eine lineare Abbildung und ihre Vielfachen eine projektive
   2061     Abbildung der linearen Abbildung auf $cal(O)$ entspricht der Beschränkung
   2062     der projektiven Abbildung auf $cal(D)$. 
   2063 
   2064     Folglich sind die hyperbolischen Abbildungen im Klein-Modell die auf
   2065     $cal(D)$ beschränkten Projektivetäten der Ebene $z=1$, die $cal(D)$ bzm.,
   2066     wenn nicht beschränkt, den Kreis $pi cal(K) = "Rand" cal(D)$ auf sich
   2067     abbilden.
   2068 ])
   2069 
   2070 #card(
   2071   question: [Wie sind Entfernungen definiert?],
   2072   answer: [
   2073     Eine Strecke $mono(x y)$ hat die Länge $"dist"(mono(x), mono(y)) = abs(log D
   2074   V [mono(x y) | mono(a b)])$ wobei $mono(a)$ und $mono(b)$ die Fernpunkte der
   2075   hyperbolischen Geraden $mono(x y)$ sind. Man beachte, dass die Vertauschung
   2076   der Punkte $mono(a)$ und $mono(b)$ oder der Punkte $mono(x)$ und $mono(y)$ das
   2077   Doppelverhaltnis invertiert und daher nur das Vorzeichen seines Logarithmus
   2078   ändert. 
   2079 
   2080   (Der Rand der Kreisscheibe $cal(D)$ heißt Fernkreis. Er gehört nicht zur
   2081   hyperbolischen Ebene. Seine Punkte werden Fernpunkte genannt und die Punkte
   2082   außerhalb des Fernkreises Ultra-Fernpunkte. )
   2083 ])
   2084 #card(
   2085   question: [Warum sind Entfernungen invariant unter hyperbolischen
   2086 Abb.?],
   2087   answer: [
   2088     
   2089 ])
   2090 == Spiegelungen
   2091 #card(
   2092   question: [Wie ist eine hyperbolische Spiegelung definiert?],
   2093   answer: [
   2094     Eine hyperbolische Spiegelung oder harmonische Homologie ist eine
   2095     hyperbolische Abbildung $mono(y) = Phi(mono(x))$ mit einer Fixpunktgeraden
   2096     $cal(P)$, bei der die Geraden $mono(x) union.sq Phi(mono(x))$ alle durch den
   2097     Pol $mono(p)$ zur Polare $cal(P)$ bezüglich des Fernkreis gehen. Es sind
   2098     also Perspektivitäten, die $cal(D)$ auf sich abbilden. 
   2099 ])
   2100 #card(
   2101   question: [Was muss man tun, um eine hyperbolische Spiegelung ais
   2102 euklidische Spiegelung anzusehen?],
   2103   answer: [
   2104     Betrachtet man den Pol $mono(p)$ als Fernpunkt einer euklidischen Ebene,
   2105     entspricht die hyperbolische Spiegelung einer Spiegelung der euklidischen
   2106     Ebene an $cal(P)$. Die Polare geht bei dieser Betrachtung durch den
   2107     Mittelpunkt von $cal(D)$. 
   2108 ])
   2109 #card(
   2110   question: [Wie geht man vor, um zu zeigen, dass jede hyperbolische
   2111 Abb. Produkt von Spiegelungen ist?],
   2112   answer: [
   2113     Bildet $Phi$ eine Gerade $cal(P)$ und einen Punkt $mono(r) in cal(P)$ auf
   2114     sich ab, bildet sie die Fernpunkte $mono(a)$ und $mono(b)$ von $cal(P)$ mit
   2115     den zugehöringen Tangenten des Fernkreis auf sich ab oder vertauscht sie. 
   2116 
   2117     Sie bildet dahre auch den Pol $mono(p)$ zu $cal(P)$ und die Gerade $cal(Q)$
   2118     durch $mono(p)$ und $mono(r)$ auf sich ab. Da $Phi$ durch die Bilder der
   2119     Fernpunkte von $cal(P)$ und $cal(Q)$ bestimmt ist, kann $Phi$ nur die
   2120     Identität, die Spiegelung an $cal(P)$, die an $cal(Q)$ odie die Verknüpfung
   2121     dieser beiden Spiegelungen sein. 
   2122 ])
   2123 == Kreisverwandtschaften
   2124 #card(
   2125   question: [Was ist eine stereographische Projektion?],
   2126   answer: [
   2127     Eine stereographische Projektion ist eine Zentralprojektion vom Nordpol
   2128     $mono(n)$ einer Kugel aus auf die Tangentialebene am Südpol, die auf die
   2129     Kugel beschränkt wird und eindeutig jedem Punkt der Kugel mit Ausnahme des
   2130     Nordpols einen Punkt der Ebene zuordnet. 
   2131 
   2132     Für den Nordpol erweitert man die Ebene um einen gedachten unechten Punkt
   2133     $mono(k)$ und erklärt $mono(k)$ als das stereographische Bild von $mono(n)$.
   2134     (Durch $mono(k)$ wird die Ebene kompaktifiziert.) Die Kreise durch den
   2135     Nordpol werden durch die stereographische Projektion auf die Geraden der
   2136     Ebene abgebildet und ihnen eindeutig zugeordnet. Die Geraden heißen unechte
   2137     Kreise und sind genau die Kreise, die durch $mono(k)$ gehen. 
   2138 
   2139     #cetz.canvas({
   2140       import cetz.draw: *
   2141       import cetz.matrix: *
   2142 
   2143 
   2144       let xy = ((cos(20deg),cos(20deg),0),(-sin(20deg),sin(20deg),1))
   2145       // set-transform(xy)
   2146       line(mul-vec(xy, (-2, -2, -1)), mul-vec(xy, (2, -2, -1)))
   2147       line(mul-vec(xy, (-2, -2, -1)), mul-vec(xy, (-2, 2, -1)))
   2148       line(mul-vec(xy, (2, 2, -1)), mul-vec(xy, (2, -2, -1)))
   2149       line(mul-vec(xy, (2, 2, -1)), mul-vec(xy, (-2, 2, -1)))
   2150 
   2151       circle((0,0), radius: 1, stroke: blue)
   2152       circle(mul-vec(xy, (0,0,1)), radius: 0.08, fill: red, stroke: none)
   2153       content((), text(fill: red, $n$), anchor: "south-west", padding: .1)
   2154 
   2155       line(mul-vec(xy, (0,0,1)), mul-vec(xy, (1,0,-1)), mark: (end: ">"),
   2156       stroke: red)
   2157       circle(mul-vec(xy, (1,0,-1)), radius: 0.08, stroke: red)
   2158       circle((mul-vec(xy, (0,0,1)), 60%, mul-vec(xy, (1,0,-1))), radius: 0.08, stroke: blue)
   2159     })
   2160 ])
   2161 #card(
   2162   question: [Warum sind stereographische Projektionen winkel-und
   2163 kreistreu?],
   2164   answer: [
   2165     Zum Beweis der Winkeltreue, sehen wir uns zwei Tangenten der Kugel in einem
   2166     Punkt $mono(p)$ an und dazu die Beiden Kreise durch $mono(p)$ und $mono(n)$
   2167     mit diesen Tangenten. Diese Kreise schneiden sich im Nordpol im gleichen
   2168     Winkel und die Tangenten im Nordpol sind parallel zu den Bildtangenten, da
   2169     diese beiden Tangentenpaare Schnitte der beiden Kreisebenen mit den
   2170     Tangentialebenen der Kugel im Nord- und Südpol sind. Das beweist die
   2171     Winkeltreue. 
   2172 
   2173     Kreise, die nicht den Nordpol gehen, werden auf Ellipsen abgebildet. Um zu
   2174     zeigen, dass diese Ellipsen  Kreise sind, betrachten wir zu einem Kreis der
   2175     Kugel den Tangentialkegel, der die Gugel in diesem Kreis berührt. Die
   2176     Mantellinien des Kegels schneiden den Kreis orthogonal und werden auf
   2177     Geraden abgebildet, die alle durch das Bild der Kegelspitze gehen und wegen
   2178     der Winkeltreue das Bild des Kreises orthogonal schneiden. Deshalb kann das
   2179     Bild nur ein Kreis sein. 
   2180 ])
   2181 #card(
   2182   question: [Was sind Kreisverwandtschaften?],
   2183   answer: [
   2184     Kreisverwandtschaften sind bijektive Abbildungen, die Kreise und nur Kreise
   2185     auf Kreise abbilden. Beispielsweise sind stereographische Projektionen
   2186     Kreisverwandtschaften. 
   2187 ])
   2188 #card(
   2189   question: [Was ist eine Inversion an einem Kreis?],
   2190   answer: [
   2191     Jeder echte Kreis $cal(K)$ einer Ebene, ist Bild eines Kugeläquators unter
   2192     einer stereographischen Projektion $pi$. Bezeichnet $rho$ die Spiegelung der
   2193     Kugel an der Äquatorebene, ist $pi compose rho compose pi^(-1)$ die
   2194     Inversion der Ebene an $cal(K)$. 
   2195 ])
   2196 #card(
   2197   question: [Wie kann man Kreisinversionen berechnen?],
   2198   answer: [
   2199     Invertiert man einen Punkt $mono(x)$ an einem Kreis mit Radius $r$ und
   2200     Mittelpunkt $mono(m)$ gilt für den Bildpunkt $mono(y)$: $norm(mono(x) -
   2201     mono(m)) dot norm(mono(y) - mono(m)) = r^2$. 
   2202 ])
   2203 #card(
   2204   question: [(Warum) sind Kreisinversionen winkeltreu?],
   2205   answer: [
   2206     Eine Inversion an einem Kreis $cal(K)$ ist eine winkeltreue
   2207     Kreisverwandtschaft, die $cal(K)$ punktweise auf sich und den Mittelpunkt
   2208     auf $mono(k)$ abbildet. 
   2209     Daher bildet sie auch zu $cal(K)$ orthogonale Kreise auf sich ab. 
   2210 ])
   2211 #card(
   2212   question: [Warum sind Kreisinversionen Kompositionen von Ahnlichkeiten und
   2213  Kreisinversionen?],
   2214   answer: [
   2215     (1) Eine Kreisverwandtschaft $kappa$, die den Punkt $mono(k)$ fest lässt,
   2216     bildet ein Quadratgitter wieder auf ein solches ab, weil sie die
   2217     einbeschriebenen Kreise auf Kreise abbildet. Somit ist sie eine Ähnlichkeit. 
   2218 
   2219     (2) Bildet $kappa$ den Punkt $mono(k)$ auf einen anderen Punkt $mono(m)$ ab,
   2220     betrachten wir die Inversion $iota$ an einem Kreis mit Mittelpunkt
   2221     $mono(m)$. Weil $iota compose kappa$ nach (1) eine Ähnlichkeit $alpha$ ist,
   2222     hat auch $kappa = iota compose iota compose kappa = iota compose alpha$ die
   2223     behauptete Zerlegung. 
   2224 ])
   2225 == Das Poincaré-Modell
   2226 #card(
   2227   question: [Wie ist das Poincaré-Modell der hyperbolischen Ebene definiert?],
   2228   answer: [
   2229     Das Poincaré-Modell der hyperbolischen Ebene erhalten wir aus dem
   2230     Klein-Modell, indem wir die Kreisscheinbe $cal(D)$ als orthogonale
   2231     Projektion einer auf ihr liegenden Kugel auffassen und das Klein-Modell der
   2232     hyperbolischen Ebene zurück nach oben auf die untere Hälfte der Kugel
   2233     projizieren. 
   2234 
   2235     Vom Nordpol der Kugel projiziert man die untere Halbkugel stereographisch
   2236     wieder zurück auf die Ebene von $cal(D)$ und erhält so das Poincaré-Modell
   2237     der hyperbolischen Ebene. 
   2238 ])
   2239 #card(
   2240   question: [Was sind in diesem Modell die hyperbolischen Geraden?],
   2241   answer: [
   2242     Aus den hyperbolischen Geraden werden Halbkreise, die orthogonal vom Äquator
   2243     der Kugel weg nach unten hängen. 
   2244 
   2245     Die hyperbolischen Geraden entsprechen im Poincaré-Modell Kreisbögen, die
   2246     orthogonal vom Fernkreis weglaufen. 
   2247 ])
   2248 #card(
   2249   question: [Was sind die hyperbolischen Spiegelungen in diesem
   2250 Modell?],
   2251   answer: [
   2252     Die hyperbolischen Abbildungen werden im Poincaré-Modell zu Abbildungen, die
   2253     den Fernkreis auf sich abbilden. insbesondere wird aus einer hyperbolischen
   2254     Spiegelung an einer Polagen eine Inversion an einem zum Fernkreis
   2255     orthogonalen Kreis, dessen Mittelpunkt $mono(m)$ der Pol der Spiegelung ist. 
   2256 ])
   2257 #card(
   2258   question: [Warum sind die hyperbolischen Abb. genau die
   2259 Kreisverwandtschaften, die den Fernkreis auf sich
   2260 abbilden?],
   2261   answer: [
   2262     Die projektiven Geraden durch den Pol gehen bei der Spiegelung und der
   2263     Inversion in sich über. Jede hyperbolische Gerade ist hat im Klein- als auch
   2264     im Poincaré-Modell zwei Fernpunkte auf dem Fernkreis und ist durch diese
   2265     festgelegt. Weil die Fernpunkte sowohl durch die Spiegelung als auch durch
   2266     die Inversion auf sich abgebildet werden, wird jede Gerade in die gleiche
   2267     aber unterschiedlich als Strecke oder Kreissegment dargestellte Gerade
   2268     gespiegelt bzw. invertiert. Da jeder Punkt Schnitt von zwei Geraden ist,
   2269     folgt die Behauptung. 
   2270 ])
   2271 #card(
   2272   question: [Wie ist der hyperbolische Winkel definiert?],
   2273   answer: [
   2274     Der Winkel, in dem sich zwei hyperbolische Geraden im Poincaré-Modell
   2275     schneiden, ist ihr hyperbolischer Winkel. Er ist invariant unter
   2276     hyperbolischen Abbildungen. 
   2277 ])
   2278 #card(
   2279   question: [Warum bleiben Winkel unter hyperbolischen Abb.
   2280 invariant?],
   2281   answer: [
   2282     
   2283 ])
   2284 
   2285 == Fundamentalgebiete
   2286 #card(
   2287   question: [Wie gro8 ist die Winkelsumme eines hyperbolischen
   2288 Dreiecks?],
   2289   answer: [
   2290     Die Winkelsumme in einem hyperbolischen Dreieck ist kleiner als 180°. 
   2291 
   2292     (Die Winkelsumme eines Dreiecks der euklidischen Ebene ist 180° und für ein
   2293   Kugeldreieck größer als 180°.)
   2294 ])
   2295 #card(
   2296   question: [Warum ist die Winkelsumme eines hyperbolischen
   2297 Dreiecks kleiner als 180?],
   2298   answer: [
   2299     Jedes hyperbolische Dreieck $mono(o' p' q')$ kann durch eine Spiegelung
   2300     (winkelerhaltend) in ein Dreieck $mono(o p q)$ überführt werden, bei dem
   2301     z.B. $mono(o)$ Mittelpunkt der Kreisscheibe $cal(D)$ ist. Die zu dieser Ecke
   2302     adjazenten Kanten liegen dann auf Durchmessern der Kreisscheibe. Nur der
   2303     Winkel bei $mono(o)$ entspricht dem des euklidischen Dreiecks $mono(o p q)$,
   2304     während die beiden anderen kleiner als die entsprechenden des euklidischen
   2305     Dreiecks sind. 
   2306   ])
   2307 #card(
   2308   question: [Wie groB kônnen die Winkelsummen regelma8iger n-Ecke sein?],
   2309   answer: [
   2310     Die Winkelsummen aller regelmäßigen n-Ecke bilden das Intervall $(0, (n-2)
   2311     180°)$. Zu jeder Winkelsumme aus diesem Intervall gibt es also regelmäßige
   2312     n-Ecke. 
   2313 
   2314     Ein regelmäßiges n-Eck ist ein Polygon, dessen Kantenlängen und Winkel alle
   2315     gleichgroß sind. 
   2316 ])
   2317 #card(
   2318   question: [Was ist ein Fundamentalgebiet?],
   2319   answer: [
   2320     Ein regelmäßiger n-Eck mit Winkelsumme 360° (n > 4) heißt Fundamentalgebiet. 
   2321 ])
   2322 #card(
   2323   question: [Was ist eine Fuchssche Gruppe?],
   2324   answer: [
   2325     Bei einem Fundamentalgebiet $cal(Q)$ (regelmäßiger n-Eck mit Winkelsumme 360°)
   2326     existiren $n$ (nicht eindeutige) Drehungen $phi_1, ..., phi_n$0mit $phi_1
   2327     compose ... compose phi_n = id$, sodass die Bilder $phi cal(Q)$ für $phi =
   2328     rho_1 compose ... compose rho_k, k in NN$ und $rho_1 ... rho_k in {phi_1,
   2329     ..., phi_n}$, die hyperbolische Ebene $cal(H)^2$ zerlegen. 
   2330 
   2331     Die $phi_i$ erzeugen eine Fuchse Gruppe. Allgemeiner ist eine Fuchssche
   2332     Gruppe eine Gruppe hyperbolischer Abbildungen, die ein, auch nicht
   2333     regelmäßiges Polygon auf Polygone abbildet, welche die hyperbolische Ebene
   2334     $cal(H)^2$ zerlegen. 
   2335 ])
   2336 == Orbifaltigkeiten
   2337 #card(
   2338   question: [Was ist eine Obifaltigkeit?],
   2339   answer: [
   2340     Die Oberfläche eines Körpers mat $gamma$ hindurchführenden Tunneln ist eine
   2341     Fläche vom topologischen Geschlecht $gamma$. Solch eine Fläche kann
   2342     aufgeschnitten und vber dem Fundamentalgebiet einer Fuchsschen Gruppe
   2343     parametrisiert werden. 
   2344 
   2345     Indem man eine Fläche über einem Fundamentalgebiet parametrisiert und ihre
   2346     Parametrisierung periodisch über einer zugehörigen Kachelung der
   2347     hyperbolischen Ebene fortsetzt, erhält man eine Orbidfaltigkeit. Die
   2348     periodische Fortsetzung hilft, glatte, d.h. differenzierbare
   2349     Parametrisierungen für solche Flächen zu konstruiren, die von beliebiger
   2350     Glattheitsordnung sind. Man kann so stückweise rationale
   2351     Splineorbidfaltigkeiten konstruiren, deren Grad nur um eins höher als ihre
   2352     Differenzierbarkeitsordnung ist. 
   2353 ])
   2354