(彩色方块只是已添加到要绘制的数组中的位置)
我在使用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.
答案 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坐标不会反转。