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

مشكلة عند تدوير النموذج كله فى وقت واحد

بدأه sookkaa في 15 أكتوبر 2010 · 8 رد · 1,062 مشاهدة · في OpenGL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته

توجد مشكله عند تدوير النموذج كله فى وقت واحد و هيا تغيير عمق الأجزاء المرسومه على النموذج

مثلا انا راسم مكعبين بجوار بعض تماما

post-147554-062672000 1287145187_thumb.j

لحد كده تمام عند تدوير المكعب الاول بدرجة 30 و المكعب التانى بنفس الدرجه من خلال الكود التالى

     
Gl.glRotatef(30, 0, 1, 0)

تظهر الصوره التاليه

post-147554-088949500 1287145316_thumb.j

على اعتبار ان البرنامج عندى شغال ازاى يرسم المكعب الاول ويقوم بتدويره بالدرجه المذكوره 30 درجه ثم يقوم برسم المكعب التانى بنفس درجة تدوير المكعب الاول من خلال الكود المذكور اعلى

تمام كده

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

post-147554-017350100 1287145578_thumb.j

الصوره السابه انا عملتها ازاى بعد تدوير المكعبين قمت بتحريك الوحده الثانيه على المحور Z والمحور X لكى يظهر النموذج بعد تدوير الوحدتين بشكل متناسق

انا عايز اعمل تدوير للنموذج كله مره واحده مش اعمل تدوير لكل مكعب لوحده علشان اعرف احل المكشله دى انا جربت الكود التالى و برضه ماعرفتش احل المكشله

Glu.gluLookAt(X, Y, Z, 0, 0, 0, 0, 1, 0)

ياريت لو حد يعرف حل للمكشله يقولى عليها

وجزاكم الله كل خير

المرفقات
Error1.jpgError2.jpgError3.jpg

تم تعديل هذه المشاركة بواسطة sookkaa في 15 أكتوبر 2010 في 15:30

#2

وعليكم السلام ورحمة الله وبركاته ،

عند تدوير أي مجسم ، يجب أخذ مسألة " نقطة الدوران " في الحسبان .. يعني :

هل نقطة الدوران في المكعب هي " في المنتصف " ، أم أنها في أحد الزوايا .. الخ .

المسألة الثانية ، كيف رسمت المكعب ؟ هل رسمته بحيث تكون نقطة الدوران في المنتصف ؟

الدوران سيتأثر بناءً على طريقتك في الرسم .

الشيء الثالث .. هل عملت إزاحة ما ؟ باستخدام translate ؟

ترتيب العمليات على المصفوفات ( إزاحة ثم دوران ، ليس مثل دوران ثم إزاحة ) .

الخلاصة :

وجود الكود الخاص " بالرسم " ، سيساعد على إعطاء إجابة أفضل .

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

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

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#3

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

#4

انا رفعتلك نسخه من البرنامج اللى انا شغال عليه علشان تشوف الكود كامل

ياريت ترد عليا فى اقرب وقت للأهميه

Test1.rar

#5

ده ملف فيديو على اليوتيوب فى الى انا عايز اعمله ياريت تدخل عليه وتشوف ازاى هوا بيحرك النموذج كله وقت واحد

Camira Rotation.txt

ياريت تشوفو و تقولى اعمل الموضوع ده ازاى عندى

تم تعديل هذه المشاركة بواسطة sookkaa في 16 أكتوبر 2010 في 11:53

#6

السلام عليكم

عليك بجعل مصفوفة التحريك الحالية التي تعمل على تحريكها في مكدس .

و بمعنى آخر إجعل التحريك و رسم الشكل بين الدالتين :

glPushMatrix();
ضع أي شيئ هنا
glPopMatrix();

مثال

glPushMatrix();
glTranslatef(§);
glRotatef(§);
drawobject1();
drawobject2();
glPopMatrix();

تخيل, هل سيكون مستقبل الأوبن جي أل مع البشرية هكذا

future.jpg
#7

عموما لو وضعت الدوران بهذا الشكل سيعمل التطبيق بشكل جيد:

glPushMatrix();
glRotatef(45,0,1,0);    
glPushMatrix();    
glTranslatef(§);        
glRotatef(§);        
drawobject1();        
drawobject2();        
glPopMatrix();   
glPopMatrix();

هكذا سيدور الأشكال كلها حول المحور ع بزاوية 45.

و الأفضل أن تضع الشيفرة خاصتك لكي نتدارك المشكلة جيدا.

تخيل, هل سيكون مستقبل الأوبن جي أل مع البشرية هكذا

future.jpg
#8

السلام عليكم

حقيقة لا أفقه شيئا في عالم البزك كما أني على لينكس و لا تشتغل تطبيقات windows , و لكن سأعطيك رأيي حول ما رأيته في الشيفرة خاصتك و مجرد رأي:

أنت تتعامل مع ذاكرة الإستنسل و لا أعرف السبب في ذلك , حاول شطب السطران

[

Gl.glStencilFunc(Gl.GL_EQUAL, 1, 1)

Gl.glStencilOp(Gl.GL_KEEP, Gl.GL_KEEP, Gl.GL_KEEP)

/code]

و إستخدم القوائم أو أعد رسم الشكل مرة ثانية.إلى حين أن يرد عليك أحد الإخوة العارفين بالبزك.

تم تعديل هذه المشاركة بواسطة 3ds max2010 في 16 أكتوبر 2010 في 16:27

تخيل, هل سيكون مستقبل الأوبن جي أل مع البشرية هكذا

future.jpg
#9

انا جربت الكود اللى مكتوب بس هيا هيا المشكله

انا لما اقوم بتدوير المكعب لوحده بيدور المكعب حول نفسه لما ارسم اكتر من مكعب واقوم بتدور المكعبات كلهم مع بعض بيدورو المكعبات بس نقطة المركز بتبقى الكاميرا

يعنى النموذج كله بيدور حول الكاميرا

ياريت تكونوا فهمتوا المشكله وتقدرو تحلوهالى

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…