2012-10-15 39 views
1

有時某些對象在用Bullet Physics模擬的世界中獲得NAN值。 (非常罕見) 處理它的正確方法是什麼? 有Bullet Physics功能來檢測這些對象以避免NAN病毒效應。 爲什麼有些物體正在獲得NAN。 我不適用NAN力量或衝動。 我認爲這可以通過創建2個對象在同一個座標上進行。子彈物理和NAN值

+1

什麼變成NaN?位置,速度,...? –

+0

@RoyDictus職位 – Max

+1

不確定這是否仍然是您的問題,但最近有人爲此打開了一張票:http://code.google.com/p/bullet/issues/detail?id=%20665 –

回答

1

兩件事情:

1)這樣的夾緊速度應防止任何機構,以加快瞬間

btScalar speed = velocity.length(); 
if(speed > speedLimit) { 
    velocity *= speedLimit/speed; 
    body->setLinearVelocity(velocity); 
} 

2)檢查NaN值自己,並使用最安全的默認值或者前值

if (isnan(someValue)) 
{ 
    someValue = fallbackValue; 
} 
+0

insnan ()在math.h中 – rraallvv