到目前爲止,這是我的代碼:opengGL畫線
#include <iostream>
#include <cstdlib>
#include <GL/glut.h>
#include <cmath>
void keyboard(unsigned char key, int x, int y);
void display(void);
void timer(int);
static float x=0.0f,y=0.0f;
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitWindowPosition(200,200);
glutInitWindowSize(640,480);
glutCreateWindow("draw a line");
glutKeyboardFunc(&keyboard);
glutDisplayFunc(&display);
glutTimerFunc(10,timer,0);
glutMainLoop();
return EXIT_SUCCESS;
}
void keyboard(unsigned char key, int x, int y)
{
switch (key)
{
case '\x1B':
exit(EXIT_SUCCESS);
break;
}
}
void timer(int value){
x+=0.001;
y+=0.0005;
glutPostRedisplay();
glutTimerFunc(10,timer,0);
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
glColor3f(0.0f, 1.0f, 0.0f);
glBegin(GL_POINTS);
glVertex2f(x,y);
glEnd();
glFlush();
}
這裏做的事情是,它照亮一個像素從點(0,0)每10毫秒至(1,0.5)。我想要的是當一個像素點亮時,它保持在該狀態,所以最終你會看到一條線。我怎樣才能做到這一點?
我刪除了glClear,現在像素仍然變亮。謝謝 – Badshah 2012-08-17 11:12:36
如果你使用雙緩衝,你需要在顯示函數的末尾調用'glutSwapBuffers()'而不是'glFlush()'。 – Derek 2012-08-17 12:34:38