【问题标题】:Cannon.js - Collisions with rotating object not as expectedCannon.js - 与旋转物体的碰撞不像预期的那样
【发布时间】:2018-09-10 20:30:14
【问题描述】:

我目前正在使用 Cannon.js 和 Three.js 来模拟物理,特别是碰撞。

我有一个旋转的“旋转臂”,它在 Y 轴上不断旋转,使用以下代码:

angularVelocity: new CANNON.Vec3(0,5,0) fixedRotation: true

我有一种方法可以创建 50 个球体并在每个球体上设置一个速度,以便它们滚入旋转器。当一个球体被击中时,它会变成红色。

问题在于,有些球体似乎直接穿​​过旋转臂,而有些球体的影响非常小,这会导致奇怪的结果。

我是否遗漏了什么或需要采取不同的措施来确保所有球体都撞击并与旋转臂相撞?

在这里演示 - https://codepen.io/danlong/pen/LJQYYN

【问题讨论】:

    标签: collision-detection collision cannon.js


    【解决方案1】:

    尝试增加对象(在这种情况下为球体)的大小var sphereShape = new CANNON.Sphere(1); 和世界子步数 this.world.step(1 / 60, 40); 默认为 10。当增加球体半径时不要忘记将它们向上移动 ylet y = 1; .

    很可能物体太小且移动速度足够快,以至于计算也变得不准确。

    从性能的角度来看,最好增加对象的大小而不是子步数。但无论如何都要通过测试来验证。

    【讨论】:

    • 谢谢,增加微调器和球体大小会产生很大的不同。它并没有让我完全到达那里,但似乎稍微增加了子步骤(20)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多