检测旋转矩形交叉点

时间:2011-11-30 20:22:22

标签: math box2d

我想测试旋转的矩形是否与我的相机的视图截头(轴对齐的矩形)相交。

我希望有一个解决方案,这是在图形宝石提供,但没有看到一个。这个看起来很近:http://www.ragestorm.net/tutorial?id=22但是这些评论表明它不像已公布的那样有效。

多年来,这个问题在SO上似乎已被问过几次,但是没有看到一个有效的例子。任何人都有任何指针?也许我可以从Box2d中提取一个静态方法,因为当然这样的测试必须在代码中的某个地方使用?

谢谢

1 个答案:

答案 0 :(得分:0)

你走在正确的轨道上 - box2d确实有这个方法......

在b2CollidePolygon.cpp中,有以下方法:

void b2CollidePolygons(b2Manifold* manifold,
    const b2PolygonShape* polyA, const b2Transform& xfA,
    const b2PolygonShape* polyB, const b2Transform& xfB)

如您所见,测试结果由b2Manifold返回。测试的输入是两个形状(一个是你的身体的固定,另一个是你的视图),以及那些形状的转换,你可以通过调用{{1}的GetTransform方法获得这些形状的转换}}