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

الدوران و opengl ....

مغلق
بدأه hihi في 9 نوفمبر 2005 · 8 رد · 1,232 مشاهدة · في OpenGL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

#2

استخدم الدوال المثلثية .. . اذا اردت تجعله يدور حول نقطة معينة .

واستخدم glrotatef .. اذا اردته يدور حول نفسه ..

واجعل المتغير يقف عند 180 درجة ويعود الى الصفر .. اذا اردت نصف دورة . او تعكس اتجاهه .. اذا وصل 180 يتناقص حتى يصل الى الصفر وهكذا ..

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#3

مثل ايش الدوال المثلثيه تقصد SIN,COS واذا كانت هي ايش المتغيرات الي تاخذها

#4

مثل ايش الدوال المثلثيه تقصد SIN,COS واذا كانت هي ايش المتغيرات الي تاخذها والدالهROTATFتدور الجسم كله يعني كل الي موجود بالشاشة

#5

مثل ايش الدوال المثلثيه تقصد SIN,COS واذا كانت هي ايش المتغيرات الي تاخذها والدالهROTATFتدور الجسم كله يعني كل الي موجود بالشاشة

ان شاء الله سأشرحها ..

بالنسبة لدالة ROTATF تستطيع ان تجعلها تدور جيم واحد فقط

مثال :

glPushMatrix();
glRotatef(45,1,0,0);
glRectd(0,0,1,1);
glPopMatrix();

حيث الدالتين

glPushMatrix();
glPopMatrix();

كأنها حاجز ...تمنع تأثر باقي الاجسام ... بدالة التدوير ...هذه .., ,,

تستطيع تطبيق تلك الدالتين مع جميع دوال الماتركس .

تم تعديل هذه المشاركة بواسطة الشمري في 9 نوفمبر 2005 في 14:21

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#6

اشكرك اخوي جزيل الشكر ومعليش الظاهر بنتعبك معنا

بس وضعت الكود بهذا الشكل:

glLineWidth(5);
glBegin(GL_LINES);
	glVertex2f(-.8,0.3);

	glVertex2f(-.9,.6);

glEnd();
glFlush();


glPushMatrix();
glRotatef(45,1,0,0);
glRectd(0,0,1,1);
glPopMatrix();

ولكن لم يدور انا اريد الخط يدور مثل المروحه اتمنى انها تكون وصلت الفكرة وجزااااااااك الله خيرا

#7

فصلنا الموضوع ... افضل .. حتى لا تتداخل ..المشاركات

اكيد ما راح يدور .... لازم يصير عندك متغير يزداد كل مرة

static int x;


void display()
{

	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
	glLoadIdentity();


	glLineWidth(5);
	glBegin(GL_LINES);
	glVertex2f(-.8,0.3);

	glVertex2f(-.9,.9);

	glEnd();
	glFlush();


	glPushMatrix();
	glRotatef(x,1,0,0);
	glRectd(0,0,.3,.3);
	glPopMatrix();

	x++;

	glutSwapBuffers();
}

ستجد المربع يدور والخط مايدور ... لانك استخدمت Push و Pop

وايضا عندك x يزداد كل مرة ... اذا صار ينقص كل مرة رح تغير اتجاه الدوران

التطبيق بالمرفقات .

04-RenderingAndAnimation.zip

تم تعديل هذه المشاركة بواسطة الشمري في 10 نوفمبر 2005 في 10:20

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#8

الى الاخ الفاضل الشمري جزاك الله خير ولكن الكود الي ارسلته ماشي ويتحرك

لكن لما اطبقه على البرنامج اشيل كل المتغيرات بمعنى اني

glBegin(GL_LINES);
	glVertex2f(-.8,0.3);


glVertex2f(-0.8,.6);

والكود الي انت وضعته هو من يقوم برسم الخط بناء على الاحداثيات+تحريكه اذا كان هذا صحيحا

أي الاحداثيات يمثل السيني والصادي وكذلك انا طبقت الكود بناء على فهمي السابق وتحرك الخط لكن تغير عن مكانه لاني ماني عارفه الاحداثيات لكل دالة

glRectd(0,0,.3,.3);

Rotatef(x,1,0,

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

تم تعديل هذه المشاركة بواسطة hihi في 11 نوفمبر 2005 في 01:46

#9

لم افهم مشكلتك اخي .

glRectd(0,0,.3,.3);

ترسم مربع ... اذا ماتعرفها لاتستخدمها ..

glTranslatef

للتحريك ... تطلب منك ثلاث بارمترات الاحداثي السيني والصادي والعمق .

glRtatef

تطلب اربع

الاول درجة الدوران ... زاوية الدوران يعني ..

اذا وضعتها كمتغير رح يقعد يدور ..

البارمترات الثلاث الباقية ... انت تحدد هل تريد الدوران على الاحداثي السيني او الصادي او العيني (يسمى كذا ؟:)

اذا اردت تجعل تأثير التدوير او التحريك او التحجيم على جسم معين .. تحجزه باستخدام glPushMatrix - glPopMatrix

--

post-42837-1246636451_thumb.png

تم تعديل هذه المشاركة بواسطة الشمري في 3 يوليو 2009 في 18:54

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

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

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