يجب أن المركب المتعدد القائم كاميرات 3D تتراكم كواتيرنيون أو الزوايا يولر؟

StackOverflow https://stackoverflow.com/questions/319189

سؤال

وهكذا كنت قد كتبت كاميرا 3D المركب المتعدد أساس موجهة نحو المبرمجين جديد لذلك هو جدا سهلة بالنسبة لهم لدمج وبدء استخدام.

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

ولكن لاحظت أن هناك مشكلة مع هذا الأسلوب. وكلما اعتدت عليه، حتى لو كنت الدورية فقط على واحد زاوية يولر، ويقول ياو، فإنه، على بعض التكرار، يبدأ النزيف أكثر في آخر، ويقول الملعب. كان طفيفا، ولكن غير مقبول إلى حد ما.

وهكذا فعلت بعض مزيد من البحث وجدت مادة تنص على أنه من الأفضل أن تتراكم يولر زوايا، وبالتالي فإن مخازن الكاميرا انها تناوب الحالي كما زوايا أويلر، وببساطة بإضافة المدخلات لهم كل إطار. ثم أنا توليد المركب المتعدد منها كل إطار، والذي بدوره يستخدم لتوليد بلدي مصفوفة دوران. وهذا ثابت مسألة دوران نزيف في محاور غير لائقة.

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

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

المحلول

وكواتيرنيون ضرب سوف تعاني من تراكم القضايا roundoff الفاصلة العائمة (وحتى زوايا بسيطة مثل 45 درجة لن يكون بالضبط). انها طريقة رائعة لتناوب المركبة، ولكن الدقة من كل المكونات من أربعة بك هو الذهاب الى غلبه النعاس، مع مرور الوقت. ومن خلال تنزف هي الآثار الجانبية واحدة، واحدة أسوأ بصريا الرغم من من أربعة الخاصة بك يمكن أن يبدأ دمج عامل المقياس - لاستعادة هذا، عليك أن renormalize إلى زوايا أويلر في أي حال. A-نقطة ثابتة أويلر زاوية لن تتراكم roundoff.

وبإعادة حساب من أربعة في الإطار هو الحد الأدنى. وأود أن لا يكلف نفسه عناء محاولة لتحسين ذلك. ربما يمكن أن تسمح لعدد قليل من كواتيرنيون تتراكم قبل renormalized للحصول على دقة الوراء، لكنها في الحقيقة لا يستحق كل هذا الجهد.

نصائح أخرى

وتراكم هو عملية غير دقيق. سوف تتراكم الكثير من الدورات الإضافية تتراكم خطأ roundoff ما إذا كنت تفعل ذلك مع كواتيرنيون أو المصفوفات.

وأتصور شيئا من هذا القبيل: كنت حصلت التعليمات البرمجية وتشغيلها، ولكن لاحظت أنه بعد كمية معينة من الملاحة الكاميرا والتنعيل على مزعج - بانتهاك ثابتة لم تفكر من قبل. على نحو فعال، وكنت قد أدركت أنك لا <م> تريد تتراكم التناوب. بدلا من ذلك كنت تريد أن تفعل شيئا آخر.

ويمكنك أن تبحث في هذا الأمر أكثر من قضية تصميم واجهة من مسألة الدقة العددية. في الأساس، والناس يتوقعون كاميرا للتنقل وفقا لدرجة الانحراف، ولفة، وذلك باختيار لمراقبة وتمثل زوايا مباشرة يمكن تجنب الكثير من المشاكل.

والمشكله هنا هي أن يبدو أن quaterions أصبحت زائدة عن الحاجة (لهذا الاستخدام معين، على الأقل). كنت لا تزال تريد كواتيرنيون، على الرغم - التحريف مع زوايا الملعب / ياو / لفة الخام يمكن أن تكون قبيحة. مرة أخرى، انها مسألة تصميم واجهة: كنت بحاجة لمعرفة أين أنت بحاجة إلى كواتيرنيون، وكيفية الحصول عليها والخروج ...

ولقد رأيت كل من دافع عن. أعتقد أن السؤال الحقيقي سيكون لديك للتعامل مع هو المرونة في نظام الكاميرا أسفل الخط. IMO ياو عموما أكثر إثارة للاهتمام في عرض شخص ثالث (لأنك ذاهب لتدوير حول محور عمودي الحرف). في حين يمكنك القول "ياو" حول رأسي في عرض أول شخص كذلك، لست متأكدا من انها حقا الشيء نفسه.

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

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