#include #include float v=150; float t=0; float a=-9.81; void inicializa(void) { glClearColor(0.6,0.8,1.0,0.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0.0, 640.0, 0.0, 480.0); } void dibuja(void) { float x,y; glClear(GL_COLOR_BUFFER_BIT); x = v*t; // ecuaciones y = .5 * a * t*t; // movimiento glColor3f(.6, .2, 0); //cafe glRecti(0+x,389+y,100+x,397+y); glColor3f(0.3, 0.3, 0.3); //gris glBegin(GL_TRIANGLES); glVertex2i(100+x,380+y); glVertex2i(130+x,393+y); glVertex2i(100+x,406+y); glEnd(); glColor3f(.8, 0, 0); glBegin(GL_QUAD_STRIP); glVertex2f(-20+x,385+y); glVertex2i(-5+x,385+y); glVertex2i(-12+x,393+y); glVertex2i(4+x,393+y); glVertex2i(-20+x,401+y); glVertex2i(-5+x,401+y); glEnd(); glutSwapBuffers(); } void tiempo(void) { t += 0.05; glutPostRedisplay(); } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); glutInitWindowSize(640,480); glutInitWindowPosition(100, 150); glutCreateWindow("Flecha"); inicializa(); glutIdleFunc(tiempo); glutDisplayFunc(dibuja); glutMainLoop(); return 0; }