0

我在 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。为什么?

4

1 回答 1

1

多边形在原始 c++ 代码中表示为具有固定数量的 8 个顶点,可能是出于性能原因。您正在看到这样做的后果。

跟踪实际的顶点数,因此只需将其用于渲染。

于 2013-06-05T16:52:31.800 回答