2012-11-02 18 views
10

वहाँ अपनी नई सामान्य वेक्टरएक विमान के लिए ओपन रोटेशन मैट्रिक्स का पता लगाएं, रोटेशन के बाद सामान्य वेक्टर दिया

निम्न छवि को देखते हुए मैट्रिक्स जो एक नई उन्मुखीकरण के लिए एक विमान घूमता प्राप्त करने के लिए एक रास्ता है, को दर्शाया गया है क्या वर्णित

enter image description here

उत्तर

18

को देखते हुए वर्ष सामान्य N और नए सामान्य N' आप द्वारा रोटेशन प्राप्त कर सकते हैं:

RotationAxis = cross(N, N') 
RotationAngle = arccos(dot(N, N')/(|N| * |N'|)) 

कहाँ

  • cross(x, y) वैक्टर x और y
  • dot(x, y) के पार उत्पाद है वैक्टर x और y
  • |x| की डॉट उत्पाद वेक्टर x
की लंबाई है

यह पुराने सामान्य को सबसे कम संभव तरीके से नए पर घुमाएगा।

नोट्स

  • RotationAngle रेडियन में हो जाएगा (यदि ARccOS रिटर्न रेडियंस के रूप में यह अधिकांश प्रयोगों में करता है)
  • arccos कोसाइन समारोह का उल्टा होता है। यह आवश्यक है क्योंकि dot(N, N') = |N| * |N'| * cos(RotationAngle) जहां RotationAngle वैक्टर के बीच कोण है।
  • RotationAxis सामान्यीकृत
  • दोनों normals (|N| * |N'|) द्वारा विभाजन सामान्यीकृत रहे हैं, तो हो जाता है अनावश्यक नहीं है (वास्तव अगर N सामान्यीकृत में तुम बाहर उत्पाद की |N| छोड़ सकते हैं और यदि N' सामान्यीकृत है तो |N'| बाहर छोड़)
  • यह यदि N' = -N (के रूप में वहाँ अनंत कई कम से कम तरीके हैं) विधि असफल हो जायेगी

यह कैसे काम करता है?

पहला अवलोकन यह है कि दो मानक हमेशा परिभाषित करेंगे (कम से कम) एक विमान जिसमें दोनों झूठ बोल रहे हैं। सबसे छोटा कोण जो उन्हें भागों को भी इस विमान के अंदर मापा जाएगा।

तो RotationAxis वेक्टर विमान है कि दोनों N और N' encloses के सामान्य हो जाएगा और RotationAngle दो पहले उल्लेख किया है के बीच सबसे छोटा कोण है।

RotationAngle वर्ष सामान्य N द्वारा चारों ओर RotationAxis घूर्णन द्वारा

तो विमान के अंदर घुमाया जाता है, N' की ओर कम से कम पथ पर।

+2

+1 लेकिन आप (| एन | * | एन |) द्वारा विभाजन को छोड़ सकते हैं क्योंकि सामान्य वैक्टरों की लंबाई 1 है। –

+0

@ एडी -530 नोट्स में लिखा गया है :) लेकिन मैंने इसे और अधिक स्पष्ट करने के लिए संपादित किया है। सामान्यों को सामान्यीकृत करने की आवश्यकता नहीं होती है, उन्हें केवल विमान के लिए लंबवत होने की आवश्यकता होती है। – Nobody

+0

बहुत बहुत धन्यवाद, जिसने मुझे बहुत मदद की – rraallvv

संबंधित मुद्दे