【问题标题】:Aframe orbit control camera pan and rotation ease animation when reach limit到达极限时,Aframe 轨道控制摄像机平移和旋转缓动动画
【发布时间】:2019-12-12 17:32:04
【问题描述】:

我正在尝试做一个像谷歌云基础设施这样的导航系统:

google cloud infrastructure

我想使用 aframe 而不是 threejs 来做到这一点。所以我现在正在自定义 keven ngo 的 aframe 轨道控制:

aframe orbit control

问题是,我成功地将自动旋转限制在某个角度,比如平移。但是我有一些以下问题,在搜索了每个可能性并尝试了自己之后,我不知道该怎么做:

  1. 如何在达到平移极限后达到同样的平稳弹回效果;
  2. 出于某种原因,如果我平移并在mouseup 之后,当鼠标移动时,它仍然平移而不是旋转。这是为什么呢?
  3. 如何让相机像谷歌的例子一样轻微旋转(我修改了原始库以在mousemove rahter than mousedown 时旋转相机)?

下面是我实验的故障链接:

aframe customized orbit control

我自定义的内容(我用斜杠和添加文本标记了我的更改):

  1. 在设定角度之间自动旋转;
  2. 仅鼠标单击平移;当鼠标移动时,相机旋转并停止自动旋转;
  3. 可以限制平移。

这是一个很长的问题,如果有人可以提供帮助,非常感谢!

【问题讨论】:

    标签: three.js aframe webvr


    【解决方案1】:

    如何达到同样的达到平移极限后平稳弹回的效果?

    一个想法:在 mouseup (即释放平移模式)时,检查相机目标是否在相机的视锥体之外。如果是这样,计算一个新的目标位置,比如在当前目标位置的中间位置,以及与相机 z 轴一致的点(即屏幕中心)。然后制作一个动画,将相机目标从当前位置移动到新位置。

    由于某种原因,如果我平移并且在 mouseup 之后然后当鼠标移动时,它仍然平移而不是旋转。这是为什么呢?

    似乎导航模式(平移、环绕或缩放)在鼠标上移时不会改变。创建一个新的(mouseup)监听器,强制轨道模式回到默认模式(轨道?)。

    如何让相机像谷歌的例子一样轻微旋转(我修改了原始库以在 mousemove rahter than mousedown 时旋转相机)?

    看起来像在谷歌示例中,轨道方向由光标所在中心的哪一侧决定。左侧使自动旋转顺时针,右侧逆时针。您将需要使用光标组件来检测这一点,并相应地更改轨道方向。 此外,似乎在谷歌版本中,轨道不是由鼠标按下(即拖动)决定的,而是由光标到中心的距离决定的,这被添加到自动旋转中。它似乎是一个缓冲系统,其中到中心的距离最初会创建一个值来改变自动轨道(通过增加或减少轨道量),但该值是一个缓冲区,这意味着它会随着时间的推移降级为 0(每帧该值会慢慢减小到 0)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-22
      • 2011-08-21
      • 1970-01-01
      • 2011-10-22
      • 2015-03-19
      • 2021-05-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多