0
Я использую этот код для перевода lonlat на x, y, z, но не могу понять, как сделать обратное.Преобразование lonlat в xyz и наоборот
var phi = (this.lat)*Math.PI/180;
var theta = (this.lon-180)*Math.PI/180;
x = -(this.R) * Math.cos(phi) * Math.cos(theta);
y = -(this.R) * Math.sin(phi);
z = (this.R) * Math.cos(phi) * Math.sin(theta);
Теперь преобразование из х, у, г в lonlat
lat = THREE.Math.radToDeg(Math.asin(rotation.y/this.R));
lon = THREE.Math.radToDeg(Math.atan2(rotation.z, rotation.x));
Но это не работает должным образом, то, что я делаю неправильно?
я использовал это, чтобы перевести вращение в координатах хуга, а затем использовал мою предыдущую формулу для получения lonlat 'var xyz = new THREE.Vector3 (0,0,0); this.camera.getWorldDirection (xyz); ' Но спасибо за помощь! – Noripsni