n'est-ce pas comme 2 fonctions? vous pourriez sûrement le chercher dans n'importe quelle langue et le convertir vous-même.
ici est mon code pour faire rectangulaire -> polaire (façon dont l'autre est très facile) en C++
Vector3 C2P (const Vector3 &v)
{
float PI=3.14159260f;
Vector3 polar;
polar.x = v.Length();
if (v.z > 0.0f) {
polar.y = (float) atan (v.z/sqrt (v.x * v.x + v.y * v.y));
}
else if (v.z < 0.0f) {
polar.y = (float) -atan (sqrt (v.x * v.x + v.y * v.y)/v.z);
}
else {
polar.y = 0.0;
}
if (v.x > 0.0f) {
polar.z = (float) atan (v.y/v.x);
}
else if (v.x < 0.0f) {
polar.z = (float) atan (v.y/v.x) + PI;
}
else if (v.y > 0) {
polar.z = PI * 0.5f;
}
else {
polar.z = -PI * 0.5f;
}
//polar.z=(polar.z/M_PI)*180;
//polar.y=(polar.y/M_PI)*180;
return polar;
}
note le résultat est x = longueur, y = angle1 z = angle2, en radians.
EDIT: par mon code, je veux dire du code que j'ai volé quelque part et utilisé comme une fois.
Umm ... le calcul devrait être simple, et il serait probablement très utile pour votre compréhension du domaine du problème si vous avez recherché les formules et les avez implémentées vous-même. –
Vrai mais le problème est trivial, donc ne m'aide pas à apprendre quelque chose de nouveau. Mais si quelque chose existe qui a été utilisé, je saurai que la réponse est correcte et que j'aurais probablement des méthodes "sympas" pour faire d'autres choses ... sinon je l'écrirai bien sûr moi-même. – Ankur