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°,它是凹的,所以我必须改变形状,使之比三角测量更简单
# 1 楼答案
多边形必须是凸的,而那个多边形不是。理想情况下,它也应该逆时针缠绕,而那个不是
在这种情况下,Box2D将使用给定顶点的凸包,这就是为什么最终得到一个六边多边形
# 2 楼答案
您将需要执行Delaunay三角剖分(手动或使用某种算法)
大多数渲染框架(Box2d、OpenGL等)明确说明给定多边形应为凸多边形(即不包含凹口)