gpt4 book ai didi

c++ - 使用 Recti 的棋盘

转载 作者:行者123 更新时间:2023-11-28 06:51:13 25 4
gpt4 key购买 nike

我正在编写一个程序来绘制棋盘代码是

#include "glut.h"

void myDisplay(void);
void myInit(void);


int main(int argc, char ** argv)
{
glutInit(&argc, argv);
glutInitWindowSize(640, 480);
glutInitWindowPosition(100, 150);
glutCreateWindow("hello");
glutDisplayFunc(myDisplay);
myInit();
glutMainLoop();

return 0;
}

void myInit(void)
{
glClearColor(1, 1, 1, 0);
glColor3f(0, 0, 0);
glPointSize(10);
glutInitDisplayMode(GLUT_SINGLE | GL_RGB);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(640, 0, 480, 0);
}


void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT);
int counter = 0;
for (GLint x = 0; x < 120; x += 15)
{
for (GLint y = 0; y < 120; y += 15)
{
counter++;
if (counter & 1 ){
glColor3f(.6, .6, .6);
}
else{
glColor3f(.2, .2, .2);
}
glRecti(x, y, (x + 15), (y + 15));
}//end of y
}//end of x
glFlush();
}

输出是

enter image description here

现在,如果我只是在 myDisplay 函数的(循环)条件中添加 equal (=) 符号,它就可以正常工作,但它还会再添加一行和一个列。所以这是一个无聊的新国际象棋 9X9

注意:我已经调试了程序,有趣的是它在 Debug模式下运行良好,因为它确实在条件之间切换......

最佳答案

当您使用 <= 时它“有效”当然,从那时起,您每列绘制奇数个矩形。但是,如果你绘制了正确的数字 8,你将获得偶数次内循环调用,因此当你开始一个新列时,计数器将始终为偶数。

这是因为 counter & 1只是不是制作棋盘图案的正确条件。在您的情况下,最简单的方法是删除 counter总而言之,只需使用类似 ((x+y)/15) & 1 的东西检查您所在的字段类型。

关于c++ - 使用 Recti 的棋盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23919610/

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