扩展网格顶点位置

时间:2017-04-23 11:19:57

标签: java geometry mesh

我有2d点,不断被物理库更新。我知道他们的本地位置并将其存储在vertices

的数组中
for (int i = 0; i < bodies.size(); i++) {
    Vec2 pos = bodies.get(i).getLocalPoint(center);

    vertices[i * 2]     = -pos.x;
    vertices[i * 2 + 1] = -pos.y;
}

每个点通过弹簧连接到它的邻居,可以向任何方向移动。由于每个主体都是连接的,因此多边形作为一个整体也可以旋转和移动。示例网格:

Polygon mesh

我使用这些多边形位置来绘制纹理并稍后进行绘制。现在我想扩展(增长)每个顶点位置,以便我可以缩放我的映射纹理。我试图获得这样的结果(蓝点表示扩展顶点,也注意到内顶点也延伸):

Extended polygon mesh

我尝试过的事情:

  • 将每个顶点乘以偏移值,如果主体旋转,则顶点位置变形。
  • 基于距中心的距离,通过偏移值增加每个顶点矢量的大小。这可以在身体静止时起作用,但如果它旋转,则变形与缩放相同。
  • 使用绘图库进行缩放也会提供与之前尝试类似的结果。由于缩放工作需要旋转绘制的网格,但网格已经旋转和变形。

如何扩展顶点,以便即使在身体旋转时它们也不会变形?

修改

以下是这些正在渲染的实体的一个示例:

Shape rendering

我想要实现的目标:

Shape rendering correct

0 个答案:

没有答案