Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript threejs轨迹球控制-围绕拾取点旋转&;放大鼠标的方向_Javascript_Three.js - Fatal编程技术网

Javascript threejs轨迹球控制-围绕拾取点旋转&;放大鼠标的方向

Javascript threejs轨迹球控制-围绕拾取点旋转&;放大鼠标的方向,javascript,three.js,Javascript,Three.js,我使用的是threejs(r73)。我用透视照相机。我的目标是实现鼠标交互。为此,我想使用 . 但我想要一个稍微不同的行为 我想围绕用户在屏幕上选择的点旋转 我想放大鼠标位置的方向 关于第二点,我已经找到了一个“解决方案”。缩放可以工作,但当我更改控件的目标向量时,平移和旋转不再工作 有谁能提供这样一个经过修改的轨迹球控制的实现,或者帮我解决这个问题 编辑 在应用“解决方案”时,平移仍然有效,但旋转不起作用 来自的想法也不起作用。在您使用的应用程序中,用户单击的点是否为对象?或者它可能是空的空间

我使用的是threejs(r73)。我用透视照相机。我的目标是实现鼠标交互。为此,我想使用 . 但我想要一个稍微不同的行为

  • 我想围绕用户在屏幕上选择的点旋转
  • 我想放大鼠标位置的方向
  • 关于第二点,我已经找到了一个“解决方案”。缩放可以工作,但当我更改控件的目标向量时,平移和旋转不再工作

    有谁能提供这样一个经过修改的轨迹球控制的实现,或者帮我解决这个问题

    编辑

    在应用“解决方案”时,平移仍然有效,但旋转不起作用


    来自的想法也不起作用。

    在您使用的应用程序中,用户单击的点是否为对象?或者它可能是空的空间?它可能是空的空间。我使用以下函数从鼠标点击中获取3D坐标:
    函数mouseToWorldSpace(clientX,clientY,camera){//计算鼠标在标准化设备坐标中的位置//(-1到+1)var mouseX=(clientX/window.innerWidth)*2-1;var mouseY=-(clientY/window.innerHeight)*2+1;var vector=new THREE.Vector3(mouseX,mouseY,1);vector.unproject(相机);return vector;}
    @rush2112空空间轨道运行的最大问题是,你不知道他们要点击哪里,你必须假设,因此,这需要线性代数对它们要绕的轨道做出正确的假设。否则,取消投影向量将使3D鼠标单击极其靠近目标camera@Rush2112你完全正确!在我的场景中,我正在渲染一台机器。我现在的解决方法是,当用户在单击机器时旋转场景时,我希望围绕机器上拾取的点旋转。当用户在空白处单击时,我只是围绕机器的边界框中心旋转。我现在有一个问题。设置TrackballControls.target意味着拾取的点将自动移动到屏幕中心@RUSH2112在您使用的应用程序中,用户单击的点是否为对象?或者它可能是空的空间?它可能是空的空间。我使用以下函数从鼠标点击中获取3D坐标:
    函数mouseToWorldSpace(clientX,clientY,camera){//计算鼠标在标准化设备坐标中的位置//(-1到+1)var mouseX=(clientX/window.innerWidth)*2-1;var mouseY=-(clientY/window.innerHeight)*2+1;var vector=new THREE.Vector3(mouseX,mouseY,1);vector.unproject(相机);return vector;}
    @rush2112空空间轨道运行的最大问题是,你不知道他们要点击哪里,你必须假设,因此,这需要线性代数对它们要绕的轨道做出正确的假设。否则,取消投影向量将使3D鼠标单击极其靠近目标camera@Rush2112你完全正确!在我的场景中,我正在渲染一台机器。我现在的解决方法是,当用户在单击机器时旋转场景时,我希望围绕机器上拾取的点旋转。当用户在空白处单击时,我只是围绕机器的边界框中心旋转。我现在有一个问题。设置TrackballControls.target意味着拾取的点将自动移动到屏幕中心@Rush2112