在三个js中移动相机时,请将坐标保持在鼠标下方

时间:2016-06-03 07:35:19

标签: javascript three.js

所以我试图在移动相机和缩放时保持鼠标光标下的对象。

我这个例子我想在http://codepen.io/madalinul/pen/bebgjZ?editors=0110移动相机时将鼠标光标放在红圈上

我尝试了一些随机数,使用此代码可以在高缩放级别下正常工作,但是当我缩小它时则没有。

//19 is max zoom level
var zoomFactor = 19 - zoomLevel;
    var moveFactor = (0.007 * (1 + zoomFactor));
    lon = (onPointerDownPointerX - event.clientX) * moveFactor + onPointerDownLon;
    lat = (event.clientY - onPointerDownPointerY) * moveFactor + onPointerDownLat;
  }

从我的测试中,它还取决于渲染器的大小。关于如何实现这一目标的任何提示?

1 个答案:

答案 0 :(得分:0)

要实现这一点,你必须使用射线投射技术,获取当前光标位置,将相机放在那里,然后开始放大。你还需要将3个坐标转移到2个坐标。