M
Vielen Dank, auch für die schnelle Antwort.
Sprich
Polar3D Vector3D::toPolar()
{
double len = magnitude();
double v = atan2(y(), x()) * 180 / Polar3D::PI;
double h = acos(z() / len) * 180 / Polar3D::PI;
return Polar3D(h, v, len);
}
tut es schon?
Berücksichtigt atan2 die ganzen Sonderfälle?
EDIT: oh, ich sehe gerade, dass die auf Wikipedia die Z und Y koordinate vertauscht haben. sprich ich muss den Algorythmus so abändern:
Polar3D Vector3D::toPolar()
{
double len = magnitude();
double h = atan2(z(), x()) * 180 / Polar3D::PI;
double v = acos(y() / len) * 180 / Polar3D::PI;
return Polar3D(h, v, len);
}
richtig?