Sources/Lexikon/Kugelkoordinaten
In Kugelkoordinaten oder räumlichen Polarkoordinaten wird ein Punkt P im dreidimensionalen Raum durch seinen Abstand vom Ursprung und zwei Winkel angegeben.
So ist der Vektor vom Ursprung zum Punkt P
mit
- .
Die Kugelkoordinaten kann man - ähnlich wie bei den Euler-Winkeln -zur Definition eines neuen, lokalen Koordinatensystems nutzen. Neben dem Flächen-Normalenvektor spannen dabei die Tangentialvektoren zu φ1 und φ2 eine neue Basis auf.
Die Koordinatentransformation erfolgt über
mit der Transformationsmatrix
Umrechnen von Euler-Winkel in Kugel-Koordinaten
Oft kann man räumliche Polarkoordinaten anschaulicher interpretieren als Euler-Winkel. Polarkoordinaten können allerdings zu Singularitäten führen wie in GYRQ. Wir schreiben hier deshalb eine Transformationsvorschrift an, mit der wir Euler-Winkel in Polarkoordinaten übersetzten können.
Dazu geben wir die räumlichen Koordinaten eines Punkts P mit einer Koordinatentransformation einerseits durch Euler-Drehmatrizen und andererseits durch Polarkoordinaten an. Dazu müssen wir auch die Drehung um eine dritte Achse verwenden. Wir wählen hier für die Euler-Transformation
mit den Winkeln φ1, φ2, φ3 sowie die Polarkoordinaten mit einer anschließenden Drehung um die -Achse
/* Euler-Winkel */
D[1](φ) := matrix([1,0,0],[0,cos(φ),sin(φ)],[0,-sin(φ),cos(φ)]);
D[2](φ) := matrix([cos(φ),0,-sin(φ)],[0,1,0],[sin(φ),0,cos(φ)]);
D[3](φ) := matrix([cos(φ),sin(φ),0],[-sin(φ),cos(φ),0],[0,0,1]);
/* Kugelkoordinanten */
D[12](θ,φ):= matrix([ cos(θ)*cos(φ), cos(θ)*sin(φ), -sin(θ)],
[ -sin(φ), cos(φ), 0 ],
[ sin(θ)*cos(φ), sin(θ)*sin(φ), cos(θ)]);
/* Zusammenhang Euler-Winkel - Kugelkoordinaten*/
/* Euler -> Kugel */
equ: matrix([a[x],a[y],a[z]]).D[3](θ[3]).D[12](θ[1],θ[2]) - matrix([a[x],a[y],a[z]]).D[3](φ[3]).D[1](φ[1]).D[2](φ[2]);
equ: flatten(makelist(coeff(args(equ),[a[x],a[y],a[z]][i]),i,1,3));
equ: makelist(equ[i]=0,i,1,9);
repl: solve([equ[5],equ[6],equ[7],equ[8],equ[9]],[cos(θ[3]),sin(θ[2]),cos(θ[2]),sin(θ[1]),cos(θ[1])])[1];
equ: transpose(subst(repl,equ));
repl: append(trigsimp(repl), subst([sin(φ[1])^2=1-cos(φ[1])^2],trigsimp(solve(equ[1],sin(θ[3])^2))));
equ: trigsimp(transpose(subst(repl,equ)));
Links
- Kugelkoordinaten auf Wikipedia
- Sources/Lexikon/Eulersche Winkel
- Quaternionen für Drehungen
- Geographische Koordinaten
Literature
- ...