Feedback

C++ - Umwandlung von kartesische in sphärischen Koordinaten

Veröffentlicht von am 20.03.2008
(1 Bewertungen)
Dieser Code zeigt die Umwandlung von Kartesischen Koordinaten in sphärische Koordinaten
// Zufällige kartesische Koordinaten erzeugen
vector3f x = random_vector3f();

// Umwandeln in sphärische Koordinaten (r,rotX,rotZ)
float r = sqrt(x.x*x.x+x.y*x.y+x.z*x.z);
float rotX = std::atan2( sqrt(x.x*x.x+x.y*x.y) , x.z );
float rotZ = std::atan2(x.y , x.x);

// Rückrechnen wieder in kartesische Koordinaten:
x.x = r * sin(rotX) * cos(rotZ);
x.y = r * sin(rotX) * sin(rotZ);
x.z = r * cos(rotX);
Abgelegt unter Koordinaten, kartesisch, sphärisch.

3 Kommentare zum Snippet

Tim Hartwig schrieb am 20.03.2008:
Genau das habe ich gebraucht xD
Rainer Schuster schrieb am 01.04.2008:
was für includes brauche ich dazu?
Vertexwahn schrieb am 03.04.2008:
Hier gibt's auch ein Tutorial zum Thema "Umwandlung von kartesischen Koordinaten in Kugelkoordinaten":
http://loop.servehttp.com/~vertexwahn/uploads/UmwandlungVonKartesischenKoordinatenInKugelkoordinaten.pdf
 

Logge dich ein, um hier zu kommentieren!