或者,也许更好,这意味着什么?
应该是什么单位?
如果我要模拟“背景”的摩擦,则如下所示:
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/