Loops 对于循环和GLbegin
我正试图用OpenGL在c中制作一个混乱的游戏,出于某种原因,我现在只创建了一个三角形和一个点,而我期望得到60000点。我认为这是因为begin和end语句在for循环中,如果不是,那么我不确定是什么错误。如果您能帮助解决此问题,我们将不胜感激 顺便说一句,混沌游戏是从一个点开始,然后在三角形上选择一个随机点,然后在所选点和原始点之间放置一个新点并继续,在我的情况下,我将重复这60000次。:)Loops 对于循环和GLbegin,loops,opengl,for-loop,Loops,Opengl,For Loop,我正试图用OpenGL在c中制作一个混乱的游戏,出于某种原因,我现在只创建了一个三角形和一个点,而我期望得到60000点。我认为这是因为begin和end语句在for循环中,如果不是,那么我不确定是什么错误。如果您能帮助解决此问题,我们将不胜感激 顺便说一句,混沌游戏是从一个点开始,然后在三角形上选择一个随机点,然后在所选点和原始点之间放置一个新点并继续,在我的情况下,我将重复这60000次。:) void显示(void) { glClear(GL_COLOR_BUFFER_BIT);//清除所
void显示(void)
{
glClear(GL_COLOR_BUFFER_BIT);//清除所有像素
int选择,i;
浮动x=0.15,y=0.85;
glColor3f(0.0,0.0,0.0);//这将图形颜色设置为黑色
glBegin(GL_LINE_LOOP);//三角形
glVertex3f(0.2,0.2,0.0);
glVertex3f(0.5,0.8,0.0);
glVertex3f(0.8,0.2,0.0);
glVertex3f(0.2,0.2,0.0);
格伦德();
glPointSize(3.0);//设置点大小
glBegin(GL_点);//这是原始点
glVertex3f(x,y,0.0);
格伦德();
对于(i=0;i尝试将60000
替换为60000
。在C中,60000
计算结果为0
有关逗号运算符的详细信息,请参见其上的。尝试将60000
替换为60000
。在C中,60000
计算结果为0
有关逗号运算符的更多信息,请参阅上面的。这很有效!非常感谢!我不知道为什么我在那里放了一个逗号,这是一个愚蠢的错误,再次感谢!很高兴知道!如果你喜欢这个答案,你能接受吗?如果不喜欢,你还需要什么吗?那很有效!非常感谢!我不知道为什么我在那里放了一个逗号,那是一个错误我错了,再次感谢你!很高兴知道!如果你喜欢这个答案,你能接受吗?如果不能,你还需要什么吗?
void display(void)
{
glClear (GL_COLOR_BUFFER_BIT); //clears all pixels
int choice, i;
float x = 0.15, y = 0.85;
glColor3f (0.0, 0.0, 0.0); //this sets the drawing color to black
glBegin(GL_LINE_LOOP); //The triangle
glVertex3f(0.2, 0.2, 0.0);
glVertex3f(0.5, 0.8, 0.0);
glVertex3f(0.8, 0.2, 0.0);
glVertex3f(0.2, 0.2, 0.0);
glEnd();
glPointSize(3.0); //sets point size
glBegin(GL_POINTS); //this is the original point
glVertex3f(x, y, 0.0);
glEnd();
for(i=0; i<60,000; i++)
{
choice = (rand()%3);
switch(choice)
{
case 0:
x = (x + 0.5)/2; //this is the x1+x2/2 part of the midpoint theorem
y = (y + 0.8)/2; //this is the y1+y2/2 part of the midpoint theorem
glBegin(GL_POINTS);
glVertex3f(x, y, 0.0);
glEnd();
break;
case 1:
x = (x + 0.8)/2;
y = (y + 0.2)/2;
glBegin(GL_POINTS);
glVertex3f(x, y, 0.0);
glEnd();
break;
case 2:
x = (x + 0.2)/2;
y = (y + 0.2)/2;
glBegin(GL_POINTS);
glVertex3f(x, y, 0.0);
glEnd();
default:
break;
}
}
glFlush ();
}
void init (void)
{
glClearColor (1.0, 1.0, 1.0, 0.0); //this sets the background color to white
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (250, 250);
glutInitWindowPosition (100, 100);
glutCreateWindow(argv[0]);
init ();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}