Three.JS轨道控件setAzimuthalAngle setPolarAngle

时间:2018-07-17 20:15:21

标签: three.js

*已解决修改

目标

用户

  • 使用滚轮修改半径
  • 按住鼠标并移动鼠标来修改方位角
  • 按住鼠标并移动鼠标来修改polorangle

代码

  • 修改中心点,
  • 修改半径,
  • 修改方位角
  • 修改polarAngle
  • 读取当前半径(由于用户可能已更改)
  • 读取当前方位角(由于用户可能已更改)
  • 读取当前polarAngle(由于用户可能已更改)

我尝试过的事情

  • 添加了轨道控件[1]
  • 将[2]中的代码添加到了轨道控件setPolarAngle和setAzimuthalAngle中,并将所有需要的代码添加到了[1]中。

    • 将RadiusOverride添加到了[2]的forceUpdate中,并映射了一个功能

       if (radiusOverRide != undefined && radiusOverRide != null) {
          radius = radiusOverRide;
      }
      else {
          radius = offset.length() * scale;
      }
      

      this.setRadius =函数(半径){ this.forceUpdate(radius); };

结果

用户当前可以缩放,方位角和极角

代码可以设置位置

controls.target.set(x,y,z)

代码可以设置两个角度

controls.setPolarAngle(a)
controls.setAzimuthalAngle(b);

代码可以读取两个角度

controls.getAzimuthalAngle()
controls.getPolarAngle()

代码可以通过以下方式设置半径

controls.setRadius(a)

[1] https://github.com/mrdoob/three.js/blob/master/examples/js/controls/OrbitControls.js

[2] https://gist.github.com/superguigui/315d5d9b13da1b3cbdf9

编辑***

我以前遇到的问题消失了,我添加了一些细微的变化来完善它。解决了

0 个答案:

没有答案