Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <GL/glut.h> /*??? Linux ? Windows*/
- #include <stdio.h>
- #include <math.h>
- float a = 0;
- void reshape(int w, int h)
- {
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluOrtho2D(0, w, 0, h);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- }
- float xi0 = 20, xi = 0;
- float yi0 = 4, yi = 0;
- float vx0 = 0, vy0 =40;
- float t = 0;
- float ax[2][2]={{0, 10},{10, 10}};
- float ay[2][2]={{0,-5},{10, -30}};
- int akold = 0;
- int abold = 0;
- void display()
- {
- //glClear(GL_COLOR_BUFFER_BIT);
- glLoadIdentity();
- glTranslatef(400, 400, 0);
- glPointSize(1);
- glLineWidth(1);
- int ak1 = xi/100;
- int ab1 = yi/100;
- if((ak1 != akold) || (ab1 != abold)){
- xi0 = xi;
- yi0 = yi;
- vx0 = vx0 + ax[ak1][ab1]*t;
- vy0 = vy0 + ay[ak1][ab1]*t;
- t = 0;
- akold = ak1;
- abold = ab1;
- }
- printf("%d %d\n", ak1,ab1);
- xi = xi0 + vx0*t + ax[ak1][ab1]*t*t/2.0;
- yi = yi0 + vy0*t + ay[ak1][ab1]*t*t/2.0;
- glBegin(GL_POINTS);
- glColor3d(1,1,0);
- glVertex3d(xi,yi,0);
- glEnd();
- glBegin(GL_LINES);
- glColor3d(0,1,0);
- glVertex3d(0,0,0);
- glVertex3d(200,0,0);
- glColor3d(0,1,0);
- glVertex3d(0,100,0);
- glVertex3d(200,100,0);
- glColor3d(0,1,0);
- glVertex3d(0,200,0);
- glVertex3d(200,200,0);
- glColor3d(0,1,0);
- glVertex3d(0,0,0);
- glVertex3d(0,200,0);
- glColor3d(0,1,0);
- glVertex3d(100,0,0);
- glVertex3d(100,200,0);
- glColor3d(0,1,0);
- glVertex3d(200,0,0);
- glVertex3d(200,200,0);
- glEnd();
- t+=0.01;
- glutSwapBuffers();
- }
- int main (int argc, char * argv[])
- {
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA);
- glutInitWindowSize(800, 600);
- glutCreateWindow("OpenGL lesson 1");
- glutReshapeFunc(reshape);
- glutDisplayFunc(display);
- glutIdleFunc(display);
- glutMainLoop();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement