2012-03-28 5 views
0

J'essaie de convertir le point (x, y, z) en point (u, v). J'utilise les équations wiki:Convertir le point 3D en système de coordonnées ponctuel 2D et vice versa

http://en.wikipedia.org/wiki/N-vector#Converting_latitude.2Flongitude_to_n-vector

Pour transformer le point (3,2) à 3D

que:

x=Math.cos(lat)*Math.cos(lon); 
y=Math.cos(lat)*Math.sin(lon); 
z=Math.sin(lat); 

et du point 3D à 2D:

v=Math.asin(z); 
u=Math.atan2(y,x); 

mais le problème, il ne donne pas les mêmes valeurs qui résultent de convertir point (3,2) à 3D
Puis à nouveau à 2D ce qui n'est pas égal à (3,2)

+0

'x = Math.cos (x) * Math.cos (y); y = Math.cos (x) * Math.sin (y); 'Je suppose que ce n'est pas le code actuel? Sinon, vous définissez 'x', l'angle, à une valeur de coordonnée, puis essayez de l'utiliser de nouveau comme un angle. –

+0

J'utilise la latitude et la longitude comme angle qui est 3 comme latitude et 2 comme longitude – user1261494

+0

@ user1261494: comme on vous l'a déjà dit, votre code est cassé. Vous avez x (et y) sur les deux lhs et rhs de votre premier ensemble d'équations. –

Répondre

0

Les fonctions de trig que vous utilisez attendent leurs entrées en radians, la latitude et la longitude que vous donnez sont mesurées en degrés .

+0

J'avais travaillé avec votre note mais je n'ai pas atteint le résultat exact – user1261494

+0

Quels ont été les résultats? –

Questions connexes