【问题标题】:Attraction/Repulsion Forces on objects in Three.js/PhysijsThree.js/Physijs 中对象的吸引力/排斥力
【发布时间】:2013-01-24 02:19:57
【问题描述】:

我正在从事一个额外的化学学分项目,该项目涉及化合物的原子结构。我试图对中心原子周围的元素进行 3D 模拟。比如NF3中的F包围N。

我试图对周围的元素施加力,以便它们可以将彼此推到 3D 空间中的正确位置。这将代表指定化合物的原子结构。目前,我的模拟器构建了化合物,但周围的元素在空间中摇摆不定。如何对这些会影响其他元素的对象施加排斥力?我尝试过使用 .ApplyForce、.ApplyImpulse 等,这些似乎是正确的使用方法,但它们不起作用。也许我需要对其他对象应用一种方法,使它们受到这种力的影响?

任何帮助都会很棒。提前致谢!

【问题讨论】:

    标签: javascript 3d three.js simulation physics


    【解决方案1】:

    有两种选择:

    applyImpulse() 是正确的方法,如果您希望能够将自旋引入对象。它有两个参数:一个表示您正在应用的力的向量,以及一个表示您正在应用它的对象上的位置的向量。

    否则,您想使用applyCentralImpulse()。作为参数,它需要一个向量来表示你施加的力。

    在所有情况下,向量都是一个三值向量,是THREE.Vector3 的一个实例。您不需要对两个对象施加力。也就是说,除非你想模拟牛顿第三定律。换句话说,如果你想要一个对象被推送,你不需要另一个对象来做推送。

    【讨论】: