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的新手