子弹物理:如何获得碰撞形状的相对点

时间:2015-07-27 20:48:40

标签: c++ physics openframeworks bullet

为了获得碰撞形状(复合形状)的相对点,我从形状的内外尝试了光线测试,但从未在内部工作过。它 只能在外面工作。

这是我的设置和代码:

  • C ++ openframeworks bullet physics addson
  • Visual studio 2012
  • 制作了一个名为" shape"
  • 的刚体
  • 制作了一个名为" world"
  • 的btDiscreteDynamicsWorld

这是一个raytest代码示例:

btVector3 ray_from = shape->getCenterOfMassPosition() ; //  center of mass of the shape called stones[0]
btVector3 ray_to = ray_from + btVector3(0, -100., 0); // ray to the top

btCollisionWorld::AllHitsRayResultCallback allResults(ray_from, ray_to);
world->rayTest(ray_from, ray_to, allResults);

for (int i = 0; i < allResults.m_hitFractions.size(); i++)
 {
   btVector3 p = ray_from.lerp(ray_to, allResults.m_hitFractions[i]);
   ray_all_results.push_back(new btVector3(p.getX(), p.getY(), p.getZ()));
 }

0 个答案:

没有答案