在Box2D中计算方形夹具位置的最简单方法是什么?

时间:2019-09-22 19:25:47

标签: c++ box2d

我正在使用C ++ Box2D库。我创建了一个实体,并向其中添加了多个方形灯具。这些方形固定装置从主体位置偏移(类似于此处的“ https://www.iforce2d.net/b2dtut/fixtures”“多个固定装置”部分中所做的操作)。

我的想法是让渲染系统遍历灯具并将其绘制到屏幕上。但是,我似乎找不到用于检索灯具的X,Y和角度的方法。步进Box2D世界时,主体的X / Y /旋转位置会发生变化,从而改变灯具的X / Y /旋转位置。

是否有一种简便的方法可以从方形灯具中提取此信息?我可以自己算术得出位置,但是,Box2D不会提供解决方案似乎很奇怪。

2 个答案:

答案 0 :(得分:1)

  1. 固定装置没有任何位置或自行转换。

  2. 形状具有局部点(例如b2CircleShape具有中心,b2PolygonShape具有顶点列表)。但是,形状可以在多个固定装置/实体中重复使用。因此,让他们知道他们所连接的任何固定装置/机构都是没有意义的。

要获取形状的位置,因为它已附着在世界空间中的物体上,只需使用该物体的GetWorldPoint方法:

body.GetWorldPoint(p);

其中p是连接到该物体的形状的任何局部点(例如b2CircleShape的位置或b2PolygonShape的顶点)。

答案 1 :(得分:0)

从您描述的wat看来,您似乎需要一个工具来计算一切。我对此可能是错的,但是我在您使用的产品的文档中看到的壁橱是“ Ray Casting”和“ AABB testing”。两者在文档的World Querying部分中都有说明。