الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ارجوا الرد علي مشكلتي باسرع وقت

مغلق
بدأه الشوق والدمعة في 8 مايو 2007 · 2 رد · 1,227 مشاهدة · في OpenGL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

#include <gl/glut.h>

#include <windows.h>

#include <stdlib.h>

#include <stdio.h>

#include <math.h>

#include <limits.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(0.0,0.0,0.0,0.0); // set white background color

glColor3f(0.0f, 0.0f, 0.0f); // set the drawing color

glMatrixMode(GL_PROJECTION);

gluOrtho2D(-100.0, 180.0, -100.0, 180.0);

glMatrixMode(GL_MODELVIEW);

}

void sn(void)

{

glPushMatrix();

glColor4f(1.0, 0.0, 0.0,1.0);

glRotatef(s,0,0,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,0,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,0,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,0,1);

glRecti(85,80,77,87);

glPopMatrix();

glFlush ();

}

void bn(void)

{

glPushMatrix();

glColor4f(1.0, 0.0, 0.0,1.0);

glRotatef(b,0,0,1);

glRecti(75,95,77,90);

glPopMatrix();

glFlush ();

}

void cn(void)

{

glPushMatrix();

glColor4f(1.0, 0.0, 0.0,1.0);

glRotatef(c,0,0,1);

glRecti(86,80,78,87);

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();

glColor3f(0.0,1.1,1.6);

glRecti(70,150,80,140);

glBegin (GL_LINE_STRIP);

glColor4f(1.0, 1.0, 0.0,1.0);

glVertex2i(95,130);

glVertex2i(125,130);

glVertex2i(87,95);

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++;

glutSwapBuffers();

}

void main(int argc, char **argv)

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);

glutInitWindowPosition(300,200);

glutInitWindowSize(640, 680);

glutCreateWindow("my home mwaheb almadani 42410117 g(1)");

glutDisplayFunc(ww);

glutIdleFunc(ww);

myInit();

glutMainLoop();

}هذا الكود لعصارة فواكه المشكلة عندي ان الفواكه لما تدور ماتدور جوا العصارة وانا ابغاها تدور جوا العصارة والكود حق الفارة ماهوا راضي يمشي معايا لاني ابغي لما اضفط زر تبدا العصر ارجوا الرد باسرع وقت وشكراااااااااااا

تم تعديل هذه المشاركة بواسطة الشوق والدمعة في 8 مايو 2007 في 23:18

#2

السلام عليكم

إنك لم تراعي ضبط محور الدوران في المكان المناسب عندما نقوم ببناء الأشكال سيكون المحور معظم الأحيان مثبت في مركز الثقل لتسهيل الحركة و الدوران ....عليك أن تراجع قواعد الدوران المحوري و التحويلات النقطية بالنسبة للدوران و الإنسحاب

و أما عن البرنامج فقد قمت ببعض التعديلات فيه لتصحيح المشكلة و السلام

#include <windows.h>

#include <stdlib.h>

#include <stdio.h>

#include <math.h>

#include <limits.h>

#include "glut.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(0.0,0.0,0.0,0.0); // set white background color

glColor3f(0.0f, 0.0f, 0.0f); // set the drawing color

glMatrixMode(GL_PROJECTION);

gluOrtho2D(-100.0, 180.0, -100.0, 180.0);

glMatrixMode(GL_MODELVIEW);

}

void sn(void)

{

glPushMatrix();

glColor4f(1.0, 0.0, 0.0,1.0);

glTranslated(-5,+10,0);

glTranslated(80,90,0);

glRotatef(s,0,0,1);

glTranslated(-80,-90,0);

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);

glTranslated(-5,+10,0);

glTranslated(80,90,0);

glRotatef(m,0,0,1);

glTranslated(-80,-90,0);

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);

glTranslated(-5,+10,0);

glTranslated(80,90,0);

glRotatef(h,0,0,1);

glTranslated(-80,-90,0);

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); // the formula of the transformation

glTranslated(-5,+10,0); // x1 = -5,y1 = 10

glTranslated(80,90,0); // M(x',y') = Rotation(a)*M(x-x0,y-y0)+M(x0,y0) + M(x1,y1)

glRotatef(a,0,0,1); // Rotation(a) , a:angle

glTranslated(-80,-90,0);

glRecti(85,80,77,87);

glPopMatrix();

glFlush ();

}

void bn(void)

{

glPushMatrix();

glColor4f(1.0, 0.0, 0.0,1.0);

glTranslated(-5,+10,0);

glTranslated(80,90,0);

glRotatef(b,0,0,1);

glTranslated(-80,-90,0);

glRecti(75,95,77,90);

glPopMatrix();

glFlush ();

}

void cn(void)

{

glPushMatrix();

glColor4f(1.0, 0.0, 0.0,1.0);

glTranslated(-5,+10,0);

glTranslated(80,80,0);

glRotatef(c,0,0,1);

glTranslated(-80,-80,0);

glRecti(86,80,78,87);

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();

glColor3f(0.0,1.1,1.6);

glRecti(70,150,80,140);

glBegin (GL_LINE_STRIP);

glColor4f(1.0, 1.0, 0.0,1.0);

glVertex2i(95,130);

glVertex2i(125,130);

glVertex2i(87,95);

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+=1.2;

s+=1;

glutSwapBuffers();

}

void main(int argc, char **argv)

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);

glutInitWindowPosition(300,200);

glutInitWindowSize(640, 680);

glutCreateWindow("my home mwaheb almadani 42410117 g(1)");

glutDisplayFunc(ww);

glutIdleFunc(ww);

myInit();

glutMainLoop();

}

تم تعديل هذه المشاركة بواسطة douib في 10 مايو 2007 في 23:38

#3

الف شكر صراحة خدمتني خدمة الله يجزاك بيها الف خير وينولك كل مراد لك

هذا الموضوع مغلق.

مواضيع مشابهة