我在Box2D中有一个多边形形状。形状是三角形,我希望它有3个顶点。事实上,我创建的所有形状都将输出8个顶点。为什么是这样?如果我输出顶点计数,那么总是正确的数量。我不想渲染不必要的线条,我想从形状中获取顶点数据。
@Override
public void setShape(Vec2[] vector) {
// TODO Auto-generated method stub
super.setShape(vector);
//A NEW SHAPE
shape = new PolygonShape();
//THE TRIANGLES VECTORS
Vec2[] vec = new Vec2[3];
vec[0] = new Vec2(10, 0);
vec[1] = new Vec2(0, 10);
vec[2] = new Vec2(0, 0);
//SET THE VERTICES
shape.set(vec, vec.length);
}
@Override
public void render() {
// TODO Auto-generated method stub
super.render();
//GET THE VERTICES
Vec2[] vector = shape.m_vertices;
System.out.print("\n" + "Vertices: " + vector.length);
}
将始终输出8.为什么?
答案 0 :(得分:1)
多边形在原始c ++代码中表示,固定数量为8个顶点,可能是出于性能原因。你看到了这个结果。
跟踪实际顶点计数,因此只需使用它进行渲染。