有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java缺少多边形形状对象上的两个顶点

我对PolygonShape object box2D有些问题。 我有8个顶点的绘图代码:

float scaleW = width/12;
float scaleH = height/2;
chassisShape.set(new float[] {-scaleW*2,scaleH,  scaleW*2,scaleH,  scaleW*3,0,      scaleW*7,0,  scaleW*7,-scaleH,  -scaleW*5,-scaleH,  -scaleW*5,0,  -scaleW*3,0});

但这只渲染6个顶点的多边形。 缺少的两个顶点在哪里

截图: http://imgur.com/QT05beN.png

也许我犯了一个错误,但我验证了很多次,我不知道会发生什么

谢谢你的帮助

编辑: 谢谢你的帮助。 也许我不明白什么是凸多边形,因为我很确定那是凸多边形:

我的原型屏幕:http://i.imgur.com/bR7nqVt.png

所以,如果我尊重这个框架,我的代码中是否有错误?(逆时针?或者这不是凸的?)

EDIT2:好的,我只是看到:如果角度大于180°,它是凹的,所以我必须改变形状,使之比三角测量更简单


共 (2) 个答案

  1. # 1 楼答案

    多边形必须是凸的,而那个多边形不是。理想情况下,它也应该逆时针缠绕,而那个不是

    enter image description here

    在这种情况下,Box2D将使用给定顶点的凸包,这就是为什么最终得到一个六边多边形

  2. # 2 楼答案

    您将需要执行Delaunay三角剖分(手动或使用某种算法)

    大多数渲染框架(Box2d、OpenGL等)明确说明给定多边形应为凸多边形(即不包含凹口)