سؤال

أنا لا يبدو أن تكون قادرة على معرفة هذا في رأسي.أحاول نقل كائن في الفضاء 3D.

إذا كان لدي نقطة في 5,15,5 واستخدام وظائف opengl إلى تغيير نموذج عرض....

glTranslatef( 10.0f, 4.0f, 4.0f );
glRotatef( 33.0f, 1.0f, 0.0f, 0.0f );
glTranslatef( 10.0f, 4.0f, 4.0f );

هل هناك طريقة يمكنني معرفة أين هذه النقطة ينتهي (في العالم / العالمية الإحداثيات)?يمكنني أن أفعل نوع من مصفوفة الحسابات التي سوف تعيد لي 20,26,23 (أو ما كل جديد بتنسيق الموقف هو) ؟

الرجاء المساعدة لقد كان عالقة على هذا لفترة طويلة!

هل كانت مفيدة؟

المحلول

جرب ما يلي:

1) دفع المصفوفة الحالية في كومة ؛ 2) تحميل الهوية وتطبيق التحولات الخاص بك;3) الحصول على الناتج مصفوفة التحويل في بعض متغير temp.glGet أو شيء من هذا القبيل من شأنها أن تساعد ؛ 4) البوب مصفوفة من كومة ؛

الآن لديك مصفوفة التحويل.تتكاثر وجهة نظرك هذه المصفوفة التنبؤ نقطة الإحداثيات بعد التحول.

نصائح أخرى

وبالتأكيد: تحقق من HTTP: //research.cs.queensu .CA / ~ jstewart / 454 / المذكرات / أنابيب /

وباختصار، كل هذه المكالمات الحد إلى مصفوفة واحدة، والذي يتم ضرب على هذه النقطة.

طريقة

وSadSido سوف بالتأكيد تحصل على المصفوفة الناتجة، لكنه قد لا يصب لفهم الواقع ما يحدث وراء الكواليس. الحسابات أعلاه يؤدي إلى معادلة الجبر الخطي ما يلي:

والعبوس = [mTranslate] * [mRotate] * [mTranslate] * دبوس

وحيث = mTranslate المكالمات الترجمة (مصفوفة للترجمة)، وmRotate = دعوة تناوب (مصفوفة لدوران حول محور التعسفي). حساب ذلك، وكنت على ما يرام!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top