السلام عليكــم ورحمـة الله وبركاتــه ،،
ياليت ألقى عندكم الجواب الكافي
أنا عندي هالبرنامج أبغى السيارة(معليش على رداءة الشكل) لماتدور دورة وحدة فقط تمشي يعني( تدور بعد ماتخلص دورة وحدة بس تمشي وتكمل المسيرة)
وبعد عندي مشكلة ثانية أنا ماأدري ليش أبغى السيارة تصير تحت وتصير فوق
وهذي محاولتي
#include<GL/glut.h>
#include<stdlib.h>
#include<math.h>
float rotTheta=0.0;
float trans=0.0;
void init()
{
glClearColor(1.0,1.0,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(1.0,0.0,1.5);
glPushMatrix();
glRotatef(-rotTheta,0,0,1);
glTranslatef(trans,0,0);
glBegin(GL_QUADS);
glVertex2f(50,150);
glVertex2f(100,150);
glVertex2f(100,155);
glVertex2f(50,155);
glVertex2f(105,150);
glVertex2f(110,150);
glVertex2f(110,155);
glVertex2f(105,155);
glEnd();
glPopMatrix();
glutSwapBuffers();
//glFlush();
}
void rotateHex(void)
{
rotTheta +=0.2;
if (rotTheta > 190)
rotTheta=0;
glutPostRedisplay();
}
void transTheta(void)
{
trans+=0.2;
if (trans==0)
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("My GRAPH");
init();
glutDisplayFunc(Graph);
glutMouseFunc(mouse);
//glutIdleFunc(rotateHex);
glutIdleFunc(transTheta);
glutMainLoop();
return 0;
}
وبعد أبغى اذا عندي مجموعة من الأشكال وأبغى أحرك شكل واحد فقط كييييييييف
والله يرزقكم الفردوس الأعلى اللي يرد علي لأنه طلب منا المشروع قبل أسبوع والسبت التسليم
