0

图片
(彩色方块只是添加到要绘制的数组中的位置)
我在 Java 中创建正方形网格时遇到问题。正如您在图片中看到的那样,似乎正方形被放置在正确的位置,但是随着 x 和 y 的增长,它们在 x 和 y 中逐渐变小。我一直在尝试为此找到正确的算法一段时间,但我遇到了问题。

public void draw() {
    setColor(material);
    glBegin(GL_QUADS);
        glVertex2i(x+(SIZE*(x-1)), y+(SIZE*(y-1))); //top-left vertex
        glVertex2i(SIZEx, y+(SIZE(y-1)));         //top-right vertex
        glVertex2i(SIZEx, SIZEy);                 //bottom-left vertex
        glVertex2i(x+(SIZE*(x-1)), SIZE*y);         //bottom-right vertex
    glEnd();
}
大小设置为 32。

4

1 回答 1

1

这里的问题是您在几个地方添加了“+x”和“+y”,这就是为什么随着 x 和 y 的进展方块的大小会发生变化。如果你想写出它们之间距离很小的正方形,你可以尝试这样的事情,比如 SIZE=32 和 PADDING_HALF=1,那么这样的东西应该可以工作(这样正方形应该是 30x30,填充为每个之间2个):

public void draw() {
    setColor(material);
    glBegin(GL_QUADS);
        glVertex2i(SIZE*(x-1) + PADDING_HALF, SIZE*y     - PADDING_HALF); //top-left vertex
        glVertex2i(SIZE*x     - PADDING_HALF, SIZE*y     - PADDING_HALF); //top-right vertex
        glVertex2i(SIZE*(x-1) + PADDING_HALF, SIZE*(y-1) + PADDING_HALF); //bottom-left vertex
        glVertex2i(SIZE*x     - PADDING_HALF, SIZE*(y-1) + PADDING_HALF); //bottom-right vertex
    glEnd();
}

还要记住,在 OpenGL 中,y 坐标不会倒置。

于 2013-05-12T19:48:26.883 回答