يولر زوايا مقابلQuaternions - المشاكل الناجمة عن التوتر بين سعة التخزين الداخلية وعرضها على المستخدم ؟

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

سؤال

Quaternions يمكن القول خيارا مناسبا لتمثيل كائن تناوب داخليا.فهي بسيطة وفعالة يقحم و تمثل توجه واحد لا لبس فيه.

ومع ذلك, تقديم quaternions في واجهة المستخدم هو عموما غير مناسب - يولر زوايا عموما أكثر دراية بكثير للمستخدمين ، و قيمها هي قليلا أكثر سهولة و يمكن التنبؤ بها.

يولر زوايا تعاني من كونها معقدة على مستوى الرمز - أنها تتطلب أن نظام تناوب المخزنة ، تأليف التوجه العملي (من مصفوفة أو من أربعة) باستخدام هذا النظام وما يرتبط بها من زوايا مرهقة ، على أقل تقدير.

موثوقة إقحام هي الأكثر سهولة تنفيذها باستخدام من أربعة التمثيل - هل هذا يعني أننا يجب تحويل باستمرار بين يولر والتمثيل من أربعة التمثيل ؟ هل هذا ممكن من حيث الأداء ؟

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

يمكن أن نقوم بتخزين كما يولر زوايا ومن ثم تحويله إلى quaternions حسب الحاجة ؟ وهذا ربما ليست قابلة التحويل من يولر زاوية إلى مجموعة من أربعة ، الاستيفاء ثم التحويل مرة أخرى من المرجح أن تكون مكلفة نسبيا رمز.

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

وقد أي شخص ينظر إليها أو استخدامها أو حتى أي ذكي حل هذه المشكلة ؟ بالتأكيد الخيارات الثلاثة المذكورة أعلاه ليست إلا منها ؟ هل هناك أي مشكلة أخرى نطاقات مشابهة لهذه التي لديك تم حلها ؟

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

المحلول

أنا مهندس الطيران;لقد تم استخدام quaternions المركبة الفضائية الموقف التحكم في الملاحة منذ ثلاثة عقود.وهنا بعض الأفكار حول الوضع الخاص بك:

  1. أداء أي عملية تغيير التوجه مع يولر الزوايا هو يشارف على المستحيل.يولر زوايا يعانون من شخصياته - زوايا الفور تغيير بنسبة تصل إلى 180 درجة كما زوايا أخرى تذهب من خلال التفرد;يولر زوايا المستحيل عمليا استخدام متسلسلة التناوب.Quaternions لا تعاني من أي من هذه المشاكل
  2. هناك 12 ممكنة مختلفة يولر زاوية دوران متواليات - XYZ ، XYX, XZY ، إلخ.لا يوجد أحد "أبسط" أو "الحق" مجموعة يولر الزوايا.لاستخلاص مجموعة من يولر زوايا, يجب أن تعرف الذي دوران تسلسل كنت تستخدم والتمسك بها.
  3. أقترح عليك أداء جميع التخزين وعمليات التناوب مع quaternions فقط تحويل من أربعة إلى يولر زوايا عند الإخراج المطلوب.عند القيام بذلك, يجب أن تحدد التي يولر دوران تسلسل تستخدمه.

لدي خوارزميات كل هذه العمليات وغيرها الكثير:quaternions من يولر زوايا أي دوران تسلسل من دوران المصفوفات (الاتجاه جيب التمام المصفوفات) ، من أربعة الاستيفاء مطابقة الموقف, معدل, الخ.في نهاية أو نقاط وسيطة ، جامدة ومرنة الجسم ديناميكية الحركة باستخدام quaternions.

الرجاء الاتصال بي إذا كان بإمكاني المساعدة في nhughes1ster@gmail.com

نصائح أخرى

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

لماذا لا تستخدم كواتيرنيون في رمز وتحويل Q إلى الملائكة عند الحاجة للعرض؟

ويمكنك تمثيل دوران كما المحور + زاوية دوران، التي هي في جوهرها نفس من أربعة (إلى علامة)

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

وعدد التحويلات التي نتحدث عنها. يبدو أنك كنت تدفع لمدة عمليتين المتعالية في التحويل، والذي يتوفر في ترتيب 100millions في الثانية على الأجهزة الحديثة. فما استقاموا لكم فاستقيموا تخزين كل، كواتيرنيون للتأكد من دقتها وعلم الجمال وتناوب يولر للحفاظ على معلومات المستخدم. ربما إضافة العلم والتي تشير إلى ويفضل لأي كائن معين. وعلاوة على ذلك، لديك فقط لأداء <م> تحويل مرة واحدة لكل عضو استدارة. مرة واحدة كنت قد حسبت مصفوفة التحول، التي تتكاثر-يضيف حتى نفاد الذروات.

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