Question

J'ai un ensemble de latitude et de longitude coordonnées qui doivent être rendus dans un programme GL je travaille. Je informations telles que le nombre d'unités par la latitude et la longitude de degré (I avoir les coordonnées en degrés décimaux, par exemple, 27,1234) - par exemple, 15 unités par longitude et 10 unités par latitude. Cependant, j'ai eu des problèmes avec le rendu.

Ce calcul me donne des endroits que je peux utiliser pour le rendu, mais il est pas parfait. Je l'ai testé d'abord uniquement avec les coordonnées telles que S026.33.01.806 E148.46.27.009, et quand je suis passé à des coordonnées telles que N039.52.19.030 W075.14.28.107 le rendu fini par tête en bas et horizontalement basculée.

Il peut être un manque fondamental de compréhension de l'OpenGL et la façon dont il interprète les coordonnées, ou peut-être j'aborder le problème de la mauvaise façon. J'utilise Python et PyOpenGL, mais je présume que cet algorithme est quelque chose qui peut être fait sans exigence linguistique spécifique.

EDIT: J'ai téléchargé le code qui semble être le plus pertinent pour http://slexy.org/view / s21LKiD9tj .

Était-ce utile?

La solution

Erm, le nombre d'unités de longitude est pas constante? Quel genre étrange de la fonction de conversion utilisez-vous?

En supposant que la terre soit sphérique de rayon r, centré dans la racine du système de coordonnées, avec l'axe z pointant vers le nord, l'axe x dirigé vers longitude 0, et l'axe Y dirigé vers longitude 90, vous pouvez obtenir cartésiennes les coordonnées de la façon suivante:

x = r * cos(latitude) * cos(longitude);
y = r * cos(latitude) * sin(longitude);
z = r * sin(latitude);

Remarque:. Si les fonctions trigonométriques de langue attendent les arguments à préciser en radians plutôt que degrés, assurez-vous de les convertir d'abord

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top