2010-12-02 36 views
0

J'écris du code qui traite des systèmes de coordonnées, de la géométrie et d'autres choses similaires. Je voudrais savoir quelle est, en général, la façon la plus courante/la plus pratique/la plus efficace de stocker des coordonnées sphériques, en ce qui concerne les calculs courants sur celles-ci. Est-il :Coordonnées sphériques: choix de la gamme - meilleures pratiques et performances

theta - [0, 180) 
phi - [0, 360) 

ou

theta - [-90, 90) 
phi - [-180, 180) 

ou autre chose?

(coordonnées ci-dessus sont exprimés en radians pour plus de clarté, mais je normalement les garder en radians pour améliorer la vitesse, puisque les fonctions mathématiques sont généralement mis en œuvre pour radians.)

Je sais que d'un aspect mathématique, il est complètement hors de propos, mais je me demande si un certain choix aboutirait à une mise en œuvre plus facile ou plus efficace.

+0

Qu'entendez-vous par "calculs communs?" Voulez-vous dire des choses comme "trouver la distance entre ces deux points", ou "dessiner ces points sur l'écran", ou "trouver les plus proches voisins de ce point" ...? – Xodarap

Répondre

3

Quelques pensées:

  1. Les représentations sont en effet mathématiquement équivalentes. La conversion de l'un à l'autre vous coûtera deux ajouts en virgule flottante, par pi/2 et pi, respectivement. Le coût de ces ajouts sur le matériel commun est dérisoire par rapport à celui de la trigonométrie, du trig inverse, de la multiplication/division et des calculs de la racine carrée qui sont communs dans l'arithmétique de la géométrie de la sphère. Il y a un grand corpus de texte arithmétique concernant la géométrie de la sphère qui a été développé au fil des années pour faire face à la navigation terrestre. Ce texte utilise souvent le système de coordonnées latitude/longitude, de -90 .. + 90 et -180 .. + 180, respectivement. Pour utiliser les formules bien connues sans conversion, vous voudrez peut-être s'en tenir à ce système de coordonnées.