Three.js 如何使用三个js基于鼠标单击旋转球体
我使用球体制作了球体,并使用纹理在球体顶部添加了图像。我的目标是实现,若我选择一个国家,假设印度,球体必须旋转,这样印度将处于中心位置。为此,我正在做的是取印度球面的交点,并创建了一个函数,它将创建经纬度并返回,稍后我将这个经纬度传递给另一个函数,该函数将相应地旋转,但问题是它没有正确旋转。请帮忙。下面是我的代码剪辑Three.js 如何使用三个js基于鼠标单击旋转球体,three.js,Three.js,我使用球体制作了球体,并使用纹理在球体顶部添加了图像。我的目标是实现,若我选择一个国家,假设印度,球体必须旋转,这样印度将处于中心位置。为此,我正在做的是取印度球面的交点,并创建了一个函数,它将创建经纬度并返回,稍后我将这个经纬度传递给另一个函数,该函数将相应地旋转,但问题是它没有正确旋转。请帮忙。下面是我的代码剪辑 function createLatAndLong(pointX, pointY, pointZ) { var pointOnSphere = new THREE.Vect
function createLatAndLong(pointX, pointY, pointZ) {
var pointOnSphere = new THREE.Vector3();
pointOnSphere.x = pointX;
pointOnSphere.y = pointY;
pointOnSphere.z = pointZ;
var EarthRadius = 20;
var lat =
90 - (Math.acos(pointOnSphere.y / EarthRadius) * 180) / Math.PI;
var lon =
((90 +
(Math.atan2(pointOnSphere.x, pointOnSphere.z) * 180) / Math.PI) %
360) -
180;
let latAndLongObj = { latitude: lat, longitude: lon };
return latAndLongObj;
}
这将基于交点创建纬度点和经度
function rotateGloab(lat,lon)
{
var verticalOffset = 0.1;
earthmesh.rotation.x =lat * (Math.PI / 180) - verticalOffset ;
earthmesh.rotation.y = (270 - lon) * (Math.PI / 180) ;
}
此函数用于完成球体的旋转
请帮帮我,我是三个js的新手