gpt4 book ai didi

c - 如何在 OpenGL 中使用嵌套循环用较小的正方形列表填充平面?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:04:15 33 4
gpt4 key购买 nike

我不知道我们可以用什么方法来设置一个充满较小正方形的平面(这样我可以做更好的照明效果)。

我绘制单个正方形的代码是:

void drawSquare(float x1, float y1, float x2, float y2) {
glBegin(GL_QUADS);
glVertex3f(x1, y1, 0.0f); // The bottom left corner
glVertex3f(x1, y2, 0.0f); // The top left corner
glVertex3f(x2, y2, 0.0f); // The top right corner
glVertex3f(x2, y1, 0.0f); // The bottom right corner
glEnd();
}

那么现在如何运行嵌套循环来用许多较小的正方形填充表面?我有点不确定小方 block 的坐标。

最佳答案

计算正方形的大小并将其分成更小的 block 。像这样的东西(未经测试):

void drawSquare(float x1, float y1, float x2, float y2, int xtiles, int ytiles) {
float tile_width = (x2 - x1) / xtiles;
float tile_height = (y2 - y1) / ytiles;
int x, y;
glBegin(GL_QUADS);
for (y = 0; y < ytiles; y++) {
for (x = 0; x < xtiles; x++) {
glVertex3f(x1 + x * tile_width, y1 + y * tile_height, 0.0f); // The bottom left corner
glVertex3f(x1 + x * tile_width, y1 + (y + 1) * tile_height, 0.0f); // The top left corner
glVertex3f(x1 + (x + 1) * tile_width, y1 + (y + 1) * tile_height, 0.0f); // The top right corner
glVertex3f(x1 + (x + 1) * tile_width, y1 + y * tile_height, 0.0f); // The bottom right corner
}
}
glEnd();
}

关于c - 如何在 OpenGL 中使用嵌套循环用较小的正方形列表填充平面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7802742/

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