【问题标题】:Auto rotate camera change direction when limit限制时自动旋转相机改变方向
【发布时间】:2014-01-27 23:45:26
【问题描述】:

如何让相机自动向右和向上旋转,如果它达到限制,那么它就像这个演示一样向右和向下旋转 (http://carvisualizer.plus360degrees.com/threejs/)

【问题讨论】:

    标签: three.js


    【解决方案1】:

    如果您想通过缓动获得平滑的上下,您可以使用正弦波。动画的核心部分是这样的:

    angle += speed;
    camera.position.y = centerY + (Math.sin(angle) * waveHeight);
    

    我做了一个a JSFiddle you can check out。您可以使用 centerY、speed 和 waveHeight 属性来获得您想要的感觉。

    该示例还提供了一种快速而简单的方式来围绕对象旋转。

    【讨论】:

    • 我添加 Orbitcontrol 时好像有问题,这里是JsFiddle demo
    • 您的脚本和 Orbitcontrol 正在发生冲突。你必须建立一些逻辑来让一个或另一个控制相机。快速浏览 Orbitcontrols 后,您似乎可以看到 state 属性(您需要将其公开),如果它的 -1 运行您的逻辑,否则运行它的逻辑。您需要在自定义控件中对相机进行补间,这样当您自己的脚本重新接管时它不会突然跳转。我在这里构建了骨架:jsfiddle.net/matthewcooley/Q72wU 但您需要添加实际的 state 查找。
    • @user972611 忘记在上面的评论中标记你了。
    【解决方案2】:

    你可以在渲染函数中添加一些条件..

    if(camera.rotation.x <= 100)
        camera.rotation.x +=0.01;
    else if(camera.rotation.x > 100)
        camera.rotation.x -= 0.01;
    

    试试你的代码..

    【讨论】:

    • @user972611 让我知道您遇到了什么问题?分享您的代码可能会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-24
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多