2楼有说明
即linearDamping的值不能超过1
在js中pow(x,y),如果x为负数,y则不能为double,否则返回NaN,在14669行,linearDamping的值如果大于1必将导致负数,各位老铁注意踩坑
1赞
在引擎的cannon.js的第14669行
for(i=0; i!==N; i++){
var bi = bodies[i];
if(bi.type & DYNAMIC){ // Only for dynamic bodies
var ld = pow(1.0 - bi.linearDamping,dt);
var v = bi.velocity;
v.mult(ld,v);
var av = bi.angularVelocity;
if(av){
var ad = pow(1.0 - bi.angularDamping,dt);
av.mult(ad,av);
}
}
}
pow(1.0 - bi.linearDamping,dt);
JavaScript 内部使用双精度浮点数运算。相关运算遵循 [IEEE 754 标准]。IEEE 754 规定了 pow(x, y) 运算在 x 为 finite(即不是正负无穷大和NaN)且 x < 0,而 y 是 finite 且不是整数时,返回 NaN
而说明文档对此没有说明
通过阻尼
刚体组件提供了 linearDamping 和 angularDamping 属性,分别用于设置线性和旋转的阻尼。 阻尼参数的范围可以在 0 到无穷之间, 0 意味着没有阻尼,无穷意味着满阻尼。
为什么删帖了呢
已去除并作补充说明,linearDamping的值如果大于1必将导致负数,因为dt必是double。
但阻力不够大的话,还达不到我当前开发想要的效果,正在犯愁
该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。