Java LWJGL - 创建正方形网格

时间:2013-05-12 16:51:12

标签: java opengl lwjgl

Picture
(彩色方块只是已添加到要绘制的数组中的位置)
我在使用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();
}
SIZE设置为32.

1 个答案:

答案 0 :(得分: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坐标不会反转。