# Schnittkurve

Unter einer Schnittkurve versteht man in der Geometrie im einfachsten Fall die Schnittgerade zweier nicht paralleler Ebenen des Anschauungsraumes. Im Allgemeinen besteht die Schnittkurve zweier Flächen aus den gemeinsamen Punkten, in denen sich die Flächen transversal schneiden. Transversal bedeutet, dass in jedem gemeinsamen Punkt die Flächennormalen nicht auf einer Gerade liegen. Mit dieser Einschränkung schließt man aus, dass die Flächen sich berühren oder sogar ganze Flächenstücke gemeinsam haben.
Die Bestimmung der Schnittkurve zweier Flächen ist nur in einfachen Fällen analytisch möglich. Zum Beispiel: a) Schnittgerade zweier Ebenen, b) Schnitt einer Ebene mit einer Quadrik (Kugel, Kegel, Hyperboloid, …), c) Schnitt zweier Quadriken in besonderen Lagen (z. B. Rotationsquadriken mit derselben Rotationsachse). Für allgemeinere Fälle werden in der Literatur Algorithmen bereitgestellt, mit denen man Polygone mit Punkten auf der Schnittkurve zweier Flächen berechnen kann. Die darstellende Geometrie bietet für in der Technik häufig vorkommende Fälle (Schnitt Zylinder-Kugel, Zylinder-Kegel, …) Methoden, mit denen man einzelne Punkte einer Schnittkurve (Durchdringungskurve) zeichnerisch bestimmen kann. Siehe: Hilfsebenenverfahren, Pendelebenenverfahren, Mantellinienverfahren und Hilfskugelverfahren.

## Schnittgerade zweier Ebenen

Gegeben: Zwei Ebenen $\varepsilon _{i}:\quad {\vec {n}}_{i}\cdot {\vec {x}}=d_{i},\quad i=1,2,\quad {\vec {n}}_{1},{\vec {n}}_{2}$ linear unabhängig, d. h., die Ebenen sind nicht parallel.
Gesucht: Eine Parameterdarstellung ${\vec {x}}={\vec {p}}+t{\vec {r}}$ der Schnittgerade.
Die Richtung der Schnittgerade ergibt sich aus dem Kreuzprodukt der Normalenvektoren: ${\vec {r}}={\vec {n}}_{1}\times {\vec {n}}_{2}$. Einen Punkt $P:{\vec {p}}$ der Schnittgerade erhält man, indem man die Ebenen $\varepsilon _{1},\varepsilon _{2}$ mit der zu $\varepsilon _{1}$ und $\varepsilon _{2}$ senkrechten Ebene $\varepsilon _{3}:{\vec {x}}=s_{1}{\vec {n}}_{1}+s_{2}{\vec {n}}_{2}$ schneidet. $s_{1}$ und $s_{2}$ findet man durch Einsetzen in die Gleichungen der Ebenen $\varepsilon _{1}$ und $\varepsilon _{2}$.
$P:{\vec {p}}={\frac {d_{1}{\vec {n}}_{2}^{2}-d_{2}({\vec {n}}_{1}\cdot {\vec {n}}_{2})}{{\vec {n}}_{1}^{2}{\vec {n}}_{2}^{2}-({\vec {n}}_{1}\cdot {\vec {n}}_{2})^{2}}}{\vec {n}}_{1}+{\frac {d_{2}{\vec {n}}_{1}^{2}-d_{1}({\vec {n}}_{1}\cdot {\vec {n}}_{2})}{{\vec {n}}_{1}^{2}{\vec {n}}_{2}^{2}-({\vec {n}}_{1}\cdot {\vec {n}}_{2})^{2}}}{\vec {n}}_{2}\ .$
Beispiel: $\varepsilon _{1}:\ x+2y+z=1,\quad \varepsilon _{2}:\ 2x-3y+2z=2\ .$
Die Normalenvektoren sind ${\vec {n}}_{1}=(1,2,1)^{\top },\ {\vec {n}}_{2}=(2,-3,2)^{\top }$ und der Richtungsvektor der Schnittgerade ${\vec {r}}={\vec {n}}_{1}\times {\vec {n}}_{2}=(7,0,-7)^{\top }$. Für den Punkt $P:{\vec {p}}$ ergibt sich nach obiger Formel ${\vec {p}}={\tfrac {1}{2}}(1,0,1)^{\top }\ .$ Also ist
    ${\vec {x}}={\tfrac {1}{2}}(1,0,1)^{\top }+t(7,0,-7)^{\top }$
eine Parameterdarstellung der Schnittgerade beider Ebenen.
Bemerkung:
* Man kann bei konkret vorgegebenen Ebenengleichungen auch den Gauß-Algorithmus zur Bestimmung einer Parameterdarstellung der Schnittgerade verwenden. Der obige Weg ist als programmierbare Formel für den allgemeinen Fall geeigneter.
* Falls eine Ebene (oder beide) in Parameterdarstellung ${\vec {x}}={\vec {p}}+s{\vec {v}}+t{\vec {w}}$ gegeben ist, so erhält man durch ${\vec {n}}={\vec {v}}\times {\vec {w}}$ einen Normalenvektor und die Gleichung der Ebene: ${\vec {n}}\cdot {\vec {x}}={\vec {n}}\cdot {\vec {p}}$.

## Schnittkurve einer Ebene mit einer Quadrik

Die Schnittkurve einer Ebene mit einer Quadrik (Kugel, Kegel, Zylinder, …) ist immer ein Kegelschnitt. Für die analytische Bestimmung der ebenen Schnitte eines senkrechten Kreiskegels: siehe Kegelschnitt. Die ebenen Schnitte anderer Quadriken z. B. die ebenen Schnitte einer Kugel, eines Zylinders, eines Paraboloids, eines Hyperboloids findet man hier:.
Eine wichtige Anwendung finden ebene Schnitte von Quadriken bei der Bestimmung von Umrisskurven. Denn sowohl bei Parallelprojektion als auch bei Zentralprojektion sind die Umrisse von Quadriken ebene Schnitte. Bei allgemeineren Flächen sind Umrisskurven meistens keine ebene Schnitte mehr. Siehe hierzu: Umrisskonstruktion.

## Schnittkurve eines Zylinders/Kegels mit einer Quadrik

Da die Bestimmung des Schnittpunktes einer Gerade mit einer Quadrik in impliziter Form (z. B. Kugel $x^{2}+y^{2}+z^{2}=1$ ) nur das Lösen einer quadratischen Gleichung erfordert, lassen sich beliebig viele Schnittpunkte der Schnittkurve eines Zylinders oder Kegels (beide werden von Geraden erzeugt) mit einer Quadrik berechnen und durch einen Polygonzug visualisieren (s. Bilder).
Die Bilder zeigen die Möglichkeiten, die beim Schnitt eines Zylinders mit einer Kugel auftreten können:
* Im ersten Bild gibt es eine zusammenhängende Schnittkurve.
* Im zweiten Bild zerfällt die Schnittkurve in zwei getrennte Kurven.
* Im dritten Bild berühren sich Zylinder und Kugel in einem Punkt (singulärer Punkt). Hier haben die Flächennormalen dieselbe Richtung. Die Schnittkurve durchdringt sich selbst im Berührpunkt.
* Haben Zylinder und Kugel denselben Radius und der Mittelpunkt der Kugel liegt auf der Zylinderachse, so berühren sich Kugel und Zylinder in einem Kreis. Der Schnitt der beiden besteht ausschließlich aus singulären Punkten.
* Schnittkurve Kugel mit einem Zylinder: 1-teilig
* Schnittkurve Kugel mit einem Zylinder: 2-teilig
* Schnittkurve einer Kugel mit einem Zylinder: Kurve mit 1 Singularität
* Schnittkurve Kugel mit einem Zylinder: berührend

## Allgemeiner Fall: Verfolgungsalgorithmus

Bei allgemeineren Flächen kann man keine Besonderheiten wie oben ausnutzen. Eine Möglichkeit, ein Polygon aus Punkten der gesuchten Schnittkurve zu erzeugen, bietet der Verfolgungsalgorithmus (s. Abschnitt Literatur). Er besteht aus zwei wesentlichen Teilen:
* Ein von der Darstellung der beteiligten Flächen abhängiger Kurvenpunkt-Algorithmus, der zu einem Punkt in der Nähe beider Flächen einen Punkt der Schnittkurve bestimmt. Für implizit gegebene Flächen gibt es einen relativ einfachen und schnellen Algorithmus, da die Funktionen der beiden Flächen auch in der Nähe der Flächen ausgewertet werden können und die Gradienten der Funktionen den Weg auf die beteiligten Flächen angeben. Für parametrisierte Flächen fehlen solche Informationen. Hier verwendet man u. a. Algorithmen, die Lotfußpunkte auf Flächen bestimmen.
* Der zweite Teil des Verfolgungsalgorithmus geht von einem bekannten Punkt der Schnittkurve aus und bestimmt mit Hilfe der Flächennormalen über deren Kreuzprodukt eine Tangente an die Schnittkurve. Vom ersten Punkt geht man dann um eine fest vorgegebene Schrittweite in Tangentenrichtung, um einen neuen Startpunkt für den Kurvenpunkt-Algorithmus zu erhalten. Der Kurvenpunkt-Algorithmus liefert den 2. Kurvenpunkt (s. Bild).
Zu Details des Verfolgungsalgorithmus: siehe.
Der Verfolgungsalgorithmus läuft immer entlang einer zusammenhängenden Schnittkurve. Falls mehrere Schnittkurven existieren, muss der Algorithmus mehrmals mit geeigneten Startpunkten durchlaufen werden. Der Algorithmus zeigt sich in der Praxis relativ robust. Selbst über einzelne Singularitäten läuft er ohne große Probleme, da es sehr unwahrscheinlich ist, dass man zufällig einen singulären Punkt erwischt (siehe Bild mit Zylinder und Fläche $x^{4}+y^{4}+z^{4}=1$).
* Schnittkurve der Fläche $x^{4}+y^{4}+z^{4}=1$ mit Zylinder: zweiteilig
* Schnittkurve der Fläche $x^{4}+y^{4}+z^{4}=1$ mit Zylinder: einteilig
* Schnittkurve der Fläche $x^{4}+y^{4}+z^{4}=1$ mit Zylinder: einteilig mit sing. Punkt

## Anwendung: Umrisskurve

Ein Punkt $(x,y,z)$ des Umrisses einer impliziten Fläche mit der Gleichung $f(x,y,z)=0$ muss bei einer Parallelprojektion in Richtung ${\vec {v}}$ der Bedingung $g(x,y,z)=\nabla f(x,y,z)\cdot {\vec {v}}=0$ genügen. D. h. ein Umrisspunkt ist ein Punkt der Schnittkurve der beiden impliziten Flächen
    $f(x,y,z)=0,\ g(x,y,z)=0$.
Bei Quadriken ist $g$ immer eine lineare Funktion und damit die Umrisskurve ein ebener Schnitt.
Der Umriss der Fläche $f(x,y,z)=x^{4}+y^{4}+z^{4}-1=0$ (s. Bild) wurde mit dem Verfolgungsalgorithmus bestimmt und gezeichnet.
Bemerkung: Die Bestimmung eines Umrisspolygons einer parametrisierten Fläche ${\vec {x}}={\vec {x}}(s,t)$ erfordert ein Polygon auf einer impliziten Kurve in der Parameterebene zu bestimmen( siehe) :
    Umrissbedingung: $g(s,t)=({\vec {x}}_{s}(s,t)\times {\vec {x}}_{t}(s,t))\cdot {\vec {v}}=0$.

## Schnittkurven zwischen Polyedern

Die Schnittkurve zwischen zwei Polyedern ist ein Polygon (s. Schnitt dreier Häuser). Da insbesondere parametrisierte Flächen oft durch 4-Eck-Netze dargestellt werden und die 4-Ecke in der Regel fast eben sind, ergibt sich die Schnittkurve als Schnittpolygon der einzelnen Facetten der Flächen. Einen geeigneten Algorithmus zur Bestimmung des Schnittpolygons zweier Polyeder findet man hier:.