السلام عليكــم ورحمـة الله وبركاتــه ،،
كيف حالكم جميعا إن شاء الله دائمــاً بخير.. ؟
عندي سياره تمشي من اليسار الى اليمين وعند الفراغ( اللفه ) تلف أي تأخذ المنعطف ثم تكمل مشيها من اليمين لليسار
كيف أعمل ذلك
أرجوكم سااااااااااااااعدوني وبأسرع وقت :S
وهذا هو البرنامج
#include <GL/glut.h>
#include <stdlib.h>
#include <math.h>
float rotTheta=0.0;
float trans=-200.0;
void init(void)
{ glClearColor(0.8,0.8,1.0,0.0);
glMatrixMode(GL_MODELVIEW);
glOrtho(-200.0,200.0,-200.0,200.0,-200.0,200.0);
}
void Graph (void)
{ glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.7, 0.8, 0.3);
glBegin(GL_POLYGON);
glColor3f(1.0,0.0, 0.0);
glVertex2i(-200,90);
glVertex2i(-200,95);
glVertex2i(-200,100);
glVertex2i(160,100);
glVertex2i(165,95);
glVertex2i(165,90);
glEnd();
glFlush();
glPushMatrix();
glRotatef(-rotTheta,0,0,1);
glTranslatef(trans,0,0);
glBegin(GL_POLYGON);
glColor3f(0.0,1.0, 1.0);
glVertex2i(20,120);
glVertex2i(20,130);
glVertex2i(26,130);
glVertex2i(26,135);
glVertex2i(36,135);
glVertex2i(36,130);
glVertex2i(42,130);
glVertex2i(42,120);
glVertex2i(39,120);
glVertex2i(39,115);
glVertex2i(36,115);
glVertex2i(36,120);
glVertex2i(29,120);
glVertex2i(29,115);
glVertex2i(26,115);
glVertex2i(26,120);
glEnd();
glPopMatrix();
glutSwapBuffers();
//glFlush();
}
void rotateHex(void)
{
rotTheta +=0.2;
if (rotTheta >180)
rotTheta=0;
glutPostRedisplay();
}
void transTheta(void)
{ trans +=0.2;
if(trans==50)
trans=0;
glutPostRedisplay();
}
void mouse( int button , int state , int x, int y )
{
switch (button) {
case GLUT_LEFT_BUTTON:
if(state==GLUT_DOWN)
glutIdleFunc(transTheta);
//glutIdleFunc(NULL);
break ;
case GLUT_RIGHT_BUTTON:
if ( state==GLUT_DOWN)
//glutIdleFunc(rotateHex);
glutIdleFunc(NULL);
break;
default:
break;
}
}
int main(int argc, char **argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE |GLUT_RGB );
glutInitWindowPosition(50,100);
glutInitWindowSize(500,500);
glutCreateWindow("Animation Program");
init();
glutDisplayFunc(Graph);
glutMouseFunc(mouse);
//glutIdleFunc(rotateHex);
//glutIdleFunc(transTheta);
glutMainLoop();
return 0;
}