【问题标题】:how to make loop for a cube going up and down in three js如何在三个js中使立方体上下移动
【发布时间】:2021-10-30 03:39:02
【问题描述】:

此示例代码框只向上移动我希望它上下移动

    BoxGeo = new HREE.BoxGeometry(10,10,10)
    BoxMat = new THREE.MeshPhongMaterial({
      color: 0xf3e54f
    }),
    cab = new THREE.Mesh ( BoxGeo, BoxMat);
    scene.add(cab);
   
cab.position.y  += 1;

【问题讨论】:

  • 它只会上升,因为 Math.random() 会给你一个介于 [0, 1] 之间的值,所以将它添加到 .y 使它上升。

标签: javascript three.js


【解决方案1】:

由于 Math.random() 为您提供 [0, 1] 范围内的数字,因此您可以使用简单的等式将此范围更改为 [-1, 1]

let displacement = (Math.random() - 0.5) * 2.0;
cab.position.y += displacement;

【讨论】:

  • 随机数为负数时下移。当随机数为正时,它会向上移动。我不确定我是否了解您还在寻找什么。
  • 你从来没有提到它不能低于零。我建议您在最初的问题中说明这些事情。
【解决方案2】:

您需要在动画循环中使用Math.sin() 才能平滑地上下移动对象。

cab.position.y = Math.sin(elapsedTime) + 1

【讨论】:

    猜你喜欢
    • 2017-08-14
    • 2017-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多