Java LWJGL-创建正方形网格
Java LWJGL-创建正方形网格,java,opengl,lwjgl,Java,Opengl,Lwjgl,(彩色方块只是添加到要绘制的阵列中的位置) 我在Java中创建正方形网格时遇到问题。正如您在图片中所看到的,看起来好像正方形被放置在正确的位置,但是随着x和y的增长,它们在x和y中逐渐变小。我一直在努力找到正确的算法,现在我有问题。 public void draw() { setColor(material); glBegin(GL_QUADS); glVertex2i(x+(SIZE*(x-1)), y+(SIZE*(y-1))); //top-left v
(彩色方块只是添加到要绘制的阵列中的位置)
我在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();
}
public void draw(){
设置颜色(材料);
glBegin(GL_QUADS);
glVertex2i(x+(大小*(x-1)),y+(大小*(y-1));//左上角顶点
glVertex2i(SIZEx,y+(大小(y-1));//右上顶点
glVertex2i(SIZEx,SIZEy);//左下角顶点
glVertex2i(x+(大小*(x-1)),大小*y);//右下角顶点
格伦德();
}
大小设置为32。这里的问题是在多个位置添加“+x”和“+y”。这就是为什么正方形的大小会随着x和y的变化而变化。如果你想写一个正方形,在它们之间有一个小的距离,你可以尝试这样的方法,比如说SIZE=32,PADDING_HALF=1,那么类似的方法应该可以工作(这样,正方形之间应该是30x30,PADDING为2):
还要记住,在OpenGL中,y坐标并没有反转。那只是。。。真恶心。只需为x轴和y轴使用两个for循环,并为相应顶点的x轴和y轴添加一个大小(在您的示例中为32)。
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();
}