gpt4 book ai didi

c++ - 内部嵌套 while 循环不会执行

转载 作者:行者123 更新时间:2023-11-28 02:58:19 24 4
gpt4 key购买 nike

我正在尝试创建一个嵌套的 while 循环结构,它将创建一个 3 * 3 的立方体网格。它似乎只运行一次内部循环,用立方体创建一个“L”形。所以,我的猜测是内部 while 循环在第一次运行后没有重置,但我确实明确地重置了它。

我不想发布整个代码,因为有些代码是我的 TA 提供的,未经他们许可发布这些代码感觉不对。

void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnable(GL_DEPTH_TEST);

UpdateTransform();

int x = 0;
int y = 0;
float Xres = 0;
float Yres = 0;
while(x < 3)
{
glPushMatrix();
glTranslatef(Xres,0,0);
drawOneCube();
glPopMatrix();

Xres += 0.3;


while(y < 3)
{

glPushMatrix();
glTranslatef(0,Yres,0);
drawOneCube();
glPopMatrix();


Yres += 0.3;
y++;
}

y = 0;
Yres = 0;
x++;
}

glutSwapBuffers();//this prevents that problem where the window copies the contents behind the window, possibly with glClear at the top of this function
}

最佳答案

看来你的逻辑不对。您应该只在某一时刻调用立方体绘制函数,如下所示:

void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnable(GL_DEPTH_TEST);
UpdateTransform();

int x = 0;
int y = 0;
float Xres = 0;
float Yres = 0;

for (x = 0; x < 3; ++x)
{
Yres = 0;
for (y = 0; y < 3; ++y)
{
glPushMatrix();
glTranslatef(Xres,Yres,0);
drawOneCube();
glPopMatrix();
Yres += 0.3;
}
Xres += 0.3;
}

glutSwapBuffers();
}

关于c++ - 内部嵌套 while 循环不会执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21493883/

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