gpt4 book ai didi

Java LWJGL - 创建正方形网格

转载 作者:行者123 更新时间:2023-12-01 14:35:39 24 4
gpt4 key购买 nike

Picture
(彩色方 block 只是已添加到要绘制的数组中的位置)
我在 Java 中创建正方形网格时遇到问题。正如您在图片中所看到的,看起来这些方 block 似乎被放置在正确的位置,但随着 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(SIZE<em>x, y+(SIZE</em>(y-1))); //top-right vertex
glVertex2i(SIZE<em>x, SIZE</em>y); //bottom-left vertex
glVertex2i(x+(SIZE*(x-1)), SIZE*y); //bottom-right vertex
glEnd();
}
大小设置为 32。

最佳答案

这里的问题是您在多个位置添加了“+x”和“+y”,这就是为什么方 block 的大小随着 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 坐标并未反转。

关于Java LWJGL - 创建正方形网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16509779/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com