دوران متجه متعدد الأبعاد وحساب الزاوية - كيف؟
-
25-09-2019 - |
سؤال
الإدخال: اثنين من المتجهات متعددة الأبعاد (على سبيل المثال Dim = 8) A و B.
أحتاج إلى معرفة الزاوية "الموجه" (0-2*PI ، وليس 0-PI) بين تلك المتجهات A و B. وإذا لم تكن موازية ، فأنا بحاجة إلى تدوير المتجه B في المستوى A ، B بواسطة زاوية "موجهة" L. إذا كانت متوازية ، فلا تهم الطائرة ، لكن زاوية الدوران لا تزال هي نفسها L.
بالنسبة إلى 2D و 3D ، هذا أمر سهل للغاية ، لكن بالنسبة لمزيد من الأبعاد التي فقدتها ، لم أجد أي شيء على Google ، وأفضل استخدام بعض المعادلات التي تم إثباتها واختبارها بالفعل (تجنب الأخطاء التي أدخلتها الحسابات: D).
شكرًا لك مقدمًا على النصائح والروابط وما إلى ذلك.
المحلول
أعتقد أنه يجب عليك العمل على متن الطائرة التي تم إنشاؤها بواسطة متجهاتك A و B. سيكون الرمز هو نفسه بغض النظر عن البعد (راجع للشغل ، بُعد المتجهات حسب التعريف بُعد الفضاء).
يمكنك القيام بذلك عن طريق تعامد (أ ، ب) على النحو التالي:
a' = a/||a||
b1 = b - (a'·b)a' <-- scalar product denoted by ·
b' = b1/||b||
أنت الآن على متن طائرة ذات أساس عظمي ويجب أن تعود إلى العمل. إحداثيات B في هذا الأساس هي (A '· b ، b' · b). لأنه بالمثل (|| a || ، 0). عندما تريد العودة إلى المساحة المحيطة ، ما عليك سوى كتابة المتجه الخاص بك مع الإحداثيات (x1 ، x2) كـ x1 a ' + x2 b'.
آمل ألا يكون تدوين الرياضيات مربكًا للغاية.
نصائح أخرى
قد تجد هذه الورقة مفيدة: دورات للرسومات ذات الأبعاد N من AJ Hanson. هناك أيضا هذه الورقة: التناوب العام الأبعاد. يمكنك أيضًا التحقق من هذا موضوع المنتدى حيث تحاول مجموعة من الناس العمل. وهنا ورقة أخرى: على مفهوم الدوران الصلب في المساحات ذات الأبعاد n. يجب. قف. البحث في غوغل.