Wir schreiben hier nur die 3-dimensionalen Versionen. Wir schreiben in Spaltennotation. Wir schreiben die Koordinaten eines Punktes entweder entsprechend der Namen der Koordinatenachsen, oder als eigener Namen mit Indizierung entsprechend der Koordinatenachse, also:
Vektorraum, 2- oder 3-dimensionaler Punktraum, siehe Algebra, hier nur einige Auffrischungen.
Ortsvektor eines Punktes ist der durch die Koordinaten bzgl. eines Koordinatensystems eindeutig festgelegte Vektor. Wir machen keinen wesentlichen Unterschied zwischen einem Punkt und seinem Ortsvektor.
Vektoraddition
Skalarmultiplikation
Standardskalarprodukt
Für zwei Vektoren und
ist das Standardskalarprodukt
gegeben als:
Damit kann man die Länge eines Vektors und den Abstand zweier Punkte berechnen.
Länge
Abstand
d.h. Länge des Differenzvektors. Man beachte, auch hier
Winkel zwischen zwei Vektoren
Wieso stimmt dies? (Überprüfen Sie es als Übung).
Bemerkung: Man sollte die Formel nicht zur Berechnung des
Winkels zwischen zwei normierten Vektoren verwenden, da einerseits
durch Rundungsfehler das Skalarprodukt Werte außerhalb des
Definitionsbereiches der Arcuskosinusfunktion liefern kann und
andererseits gerade im Bereich die Kosinusfunktion sehr
flach verläuft, was eine exakte Berechnung numerisch erschwert.
Deshalb besser:
welches man im Zweidimensionalen z.B. durch folgendes Programmsegment berechnet:
double Angle(
const Vector2D& u,
const Vector2D& v
) {
const double duv(hypot(u.x-v_x,u.y-v.y));
const double suv(hypot(u.x+v_x,u.y+v.y));
return 2.0 * atan2(duv,suv);
}
Vektorprodukt
Hadamardsche Produkt
orthonormale (kartesische) Koordinatensysteme, d.h. die Basisvektoren haben Länge 1 und stehen senkrecht aufeinander:
polares Koordinatensystem (2D)
ein Punkt wird durch seinen Abstand vom Ursprung und durch den
Winkel mit einer gegebenen Achse (normalerweise der -Achse eines
darunterliegenden kartesischen Koordinatensystems) beschrieben:
Kugelkoordinatensystem (3D)
ein Punkt wird durch seinen Abstand vom Ursprung und durch die
Winkel bzgl. einer gegebenen Achse und Ebene (normalerweise die -Achse
und
-Ebene eines darunterliegenden kartesischen Koordinatensystems)
beschrieben:
Hierbei ist der Winkel mit der
-Achse und
der negative Rotationswinkel der notwendig ist, um den Punkt mit einer Drehung
um die
-Achse in die
-Ebene zu drehen.
Es gibt noch andere Koordinatensysteme, z.B. Zylinderkoordinatensystem.
Umrechnung von einem Koordinatensystem in ein anderes
kartesisch - polar:
Was passiert bei ?
Die Darstellung des Ursprungs ist in polaren Koordinaten nicht eindeutig,
wir vereinbaren falls
.
Bemerkung: Beim Programmieren benutzt man die Funktion double atan2(double y,double x), die den Spezialfall x==0 berücksichtigt und auch alle anderen speziellen Fälle des IEEE-Standards für Gleitkommazahlen (IEEE Std 1003.1, 2004 Edition) korrekt abhandelt (in der Tabelle steht w für den positiven Winkel):
-inf | - | -0 | 0 | + | +inf | nan | y | |
-inf | -3pi/2 | -pi | -pi | pi | pi | 3pi/2 | nan | |
- | -pi/2 | -w | -pi | pi | w | pi/2 | nan | |
-0 | -pi/2 | -pi/2 | -pi | pi | pi/2 | pi/2 | nan | |
0 | -pi/2 | -pi/2 | -0 | 0 | pi/2 | pi/2 | nan | |
+ | -pi/2 | -w | -0 | 0 | w | pi/2 | nan | |
+inf | -pi/4 | -0 | -0 | 0 | 0 | pi/4 | nan | |
nan | nan | nan | nan | nan | nan | nan | nan | |
x |
Bemerkung: Beim Programmieren benutzt man die Funktion double hypot(double x,double y), statt die Wurzel explizit zu berechnen, für die der Standard Folgendes definiert (in der Tabelle steht r für den positiven Radius):
-inf | - | -0 | 0 | + | +inf | nan | y | |
-inf | inf | inf | inf | inf | inf | inf | inf | |
- | inf | r | r | r | r | inf | nan | |
-0 | inf | r | 0 | 0 | r | inf | nan | |
0 | inf | r | 0 | 0 | r | inf | nan | |
+ | inf | r | r | r | r | inf | nan | |
+inf | inf | inf | inf | inf | inf | inf | inf | |
nan | inf | nan | nan | nan | nan | inf | nan | |
x |
polar - kartesisch:
Übung: Umrechnung Kugelkoordinaten in kartesische Koordinaten (mit Berücksichtigung der Spezialfälle).