السلام عليكم ورحمة الله وبركاته
لو سمحتوا عندي مشكلة في العصارة هاذي انو الحركة ماهي واضحة زي الناس لاني ابغاها عشوائيه لكن الظاهر انها تختفي وتظهر رغم اني عملتلها تدوير في اكس وواي
وانا ابغاها تدور لما اضغط زر لكن للاسف الحركة ماصارت اول ما ادخل البرنامج بتبدا تعصر وانا ابغاها تعصر لما اضفط (المثلث الاصفر)الاقي عندكم حل لهذه المشكلة ارجوا الرد لاني قبل حطيت موضوع وما لقيت اي رد فارجوا انكم تساعدوني في حل هذه المشكلة وهذا الكود
وشكرا
#include <gl/glut.h>
#include <windows.h>
float s=0.0;
float m=0.0;
float h=0.0;
float a=0.0;
float b=0.0;
float c=0.0;
static double size =1;
void myInit(void)
{
glClearColor(1.0,1.0,1.0,0.0); // set white background color
glColor3f(0.0f, 0.0f, 0.0f); // set the drawing color
glMatrixMode(GL_PROJECTION);
gluOrtho2D(0.0, 300.0, 0.0, 300.0);
glMatrixMode(GL_MODELVIEW);
}
void sn(void)
{
glPushMatrix();
glColor4f(1.0, 0.0, 0.0,1.0);
glRotatef(s,0,1,1);
glBegin (GL_TRIANGLES);
glVertex2i(83,95);
glVertex2i(80,90);
glVertex2i(85,90);
glEnd();
glPopMatrix();
glFlush ();
}
void mn(void)
{
glPushMatrix();
glColor3f(0.1,0.6,0.5);
glRotatef(m,0,1,1);
glBegin (GL_TRIANGLES);
glColor4f(1.0, 0.0, 0.0,1.0);
glVertex2i(70,95);
glVertex2i(67,90);
glVertex2i(75,90);
glEnd();
glPopMatrix();
glFlush ();
}
void hn(void)
{
glPushMatrix();
glColor4f(1.0, 0.0, 0.0,1.0);
glRotatef(h,0,5,1);
glBegin (GL_TRIANGLES);
glVertex2i(77,88);
glVertex2i(74,85);
glVertex2i(78,85);
glEnd();
glPopMatrix();
glFlush ();
}
void an(void)
{
glPushMatrix();
glColor4f(1.0, 0.0, 0.0,1.0);
glRotatef(a,0,5,1);
glRecti(85,80,77,87);
glPopMatrix();
glFlush ();
}
void bn(void)
{
glPushMatrix();
glColor4f(1.0, 0.0, 0.0,1.0);
glRotatef(b,0,1,1);
glRecti(75,95,77,90);
glPopMatrix();
glFlush ();
}
void cn(void)
{
glPushMatrix();
glColor4f(1.0, 0.0, 0.0,1.0);
glRotatef(c,0,1,1);
glRecti(70,87,73,85);
glPopMatrix();
glFlush ();
}
//////////////////////////////////////
void mydisplay(void)
{
glColor3f(0.6,0.6,0.6);
glRecti(50,60,100,20);
glColor3f(0.1,1.0,0.6);
glRecti(65,80,85,60);
glBegin (GL_QUAD_STRIP);
glColor4f(0.0, 1.0, 1.0,0.0);
glVertex2i(55,130);
glVertex2i(95,130);
glVertex2i(65,80);
glVertex2i(85,80);
glEnd();
glBegin (GL_QUAD_STRIP);
glColor4f(0.0, 0.1, 1.0,0.0);
glVertex2i(55,130);
glVertex2i(95,130);
glVertex2i(50,140);
glVertex2i(100,140);
glEnd();
glColor3f(0.0,1.1,1.6);
glRecti(70,150,80,140);
glBegin (GL_TRIANGLES);
glColor4f(1.0, 1.0, 0.0,1.0);
glVertex2i(75,45);
glVertex2i(70,35);
glVertex2i(80,35);
glEnd();
glFlush ();
}
void ww(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
mydisplay();
hn();
mn();
sn();
an();
cn();
bn();
a++;
b++;
c++;
h++;
m++;
s++;
glutSolidTeapot(size);
glutSwapBuffers();
}
void SpecialKeys(int key, int x, int y)
{
switch(key) {
case GLUT_KEY_F1 : ww(); break;
}
glutPostRedisplay();
}
void main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowPosition(140, 180);
glutInitWindowSize(640, 480);
glutCreateWindow("programming assimint#1 mwaheb almadani 42410117 g(1)");
glutDisplayFunc(ww);
glutIdleFunc(ww);
glutSpecialFunc( SpecialKeys);
myInit();
glutMainLoop();