或者,也许更好,这意味着什么?

应该是什么单位?

如果我要模拟“背景”的摩擦,则如下所示:

return this
    .velocityDirection
    .mult(mu * this.mass * g)
    .negate();

我希望将g用作9.80665 m/s ^ 2。在PhysicsJS之前是这样工作的:
var
    frictionForce;
    frictionForce = vec2.create();
    vec2.scale(
        frictionForce,
        vec2.negate(
            frictionForce,
            this.velocityDirection
        ),
        mu * this.mass * g
    );
return frictionForce;

我的线性代数使用glMatrix。

我当时正在考虑以千克为单位的质量,以牛顿为单位(等等),但是在PhysicsJS中,它似乎并非如此。 (例如:如果我有一个半径为1的圆体,那是1吗?因为当我必须将此值用于其他东西以及将其“转换”为屏幕上的像素时,它会有所不同)

现在我正在使用物理库,感觉就像是在丢失某些物理...

我希望有人可以指出正确的方向,以使我更好地理解它。我现在正在阅读API文档,并学到了很多东西,但没有找到想要的答案。

更新

我收到了一个非常简单的答案。这只是为了让任何有兴趣的人知道我当时的所作所为...

多亏了Jasper和dandelany,我才了解到一些PhysicsJS的工作原理要好得多。为了实现我的“梦想”,我决定创建另一个积分器,以使用PhysicsJS中的牛顿,米每秒平方(等)的输入(并且还具有每米比例可配置的像素)。

这只是原始(和默认)verlet积分器的微小变化。
我在这篇(粗略的)文章Metres, Seconds and Newtons in PhysicsJS中或多或少地对此进行了解释

最佳答案

单位是距离的像素,是时间的毫秒。

所以加速度是0.0004像素/毫秒/毫秒

出于多种原因,使用仪表没有任何意义。每英寸的像素数取决于设备。同样,即使您进行了转换,9.8 m/s/s的加速度也似乎是非常快的,因为通常计算机模拟都希望从远处观察它的外观……所以您不希望屏幕上的仪表以与模拟中的仪表相对应。

关于javascript - 为什么在PhysicsJS中重力加速度为0.0004?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23704514/

10-09 21:26