سؤال

الإدخال: اثنين من المتجهات متعددة الأبعاد (على سبيل المثال 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. يجب. قف. البحث في غوغل.

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