Let MATLAB के 4x4 दृश्य मैट्रिक्स, द्वारा दृश्य समारोह से प्राप्त हो A
:मैटलैब 3 डी दृश्य मैट्रिक्स
A = view;
A(1:3,1:3)
रोटेशन और स्केलिंग के अनुरूप होना चाहिए,
A(1:3,4)
अनुवाद के अनुरूप होना चाहिए, और
A(4,:)
चाहिए बस [0 0 0 1]
हो।
जब निम्नलिखित सरल परिदृश्य के लिए कैमरा मानकों की स्थापना:
-1 0 0 0.5
0 1 0 -0.5
0 0 1 -0.5
0 0 0 1
अब मैं हमारे जहां 0.5 के से आ रहे हैं समझ नहीं सकता:
मुझे लगता है कि A = view
है मिल । ध्यान दें कि मैंने कैमरा स्थिति को [0,0,0] पर सेट किया है, इसलिए कोई अनुवाद नहीं होना चाहिए।
एक और खास, द्वारा करने के लिए [0,0,10] कैमरे की स्थिति की स्थापना: एक में
set(gca, 'CameraPosition', [0,0,10])
परिणाम: = दृश्य मैट्रिक्स बनने
1 0 0 -0.5
0 1 0 -0.5
0 0 -1 5.5
0 0 0 1
तो मैंने देखा है -0.5 A(3,4)
में 5.5 हो गया है और इसे किसी भी तरह से 5 = 10/2.
के साथ करना है, यह है कि कैमरे की स्थिति को बदलकर [0,0, ए] A(3,4)
पर व्यू मैट्रिक्स को लगभग a/2
पर बदलता है।
यह ... अजीब है? अजीब? अजीब?
अद्यतन: फिर भी एक और pecularity यह है कि ए (1: 3,1: 3) का निर्धारक -1 है हालांकि एक घूर्णन मैट्रिक्स के लिए यह होना चाहिए 1. जब यह -1 होना चाहिए इसका मतलब है कि यह न केवल घूर्णन है, प्रतिबिंब भी। हमें प्रतिबिंब की आवश्यकता क्यों होगी?
में तय किया गया है, मुझे भी वही परिणाम मिल रहे हैं, अजीब वास्तव में ... इसके लायक होने के लिए, यह [थ्रेड] देखें (http://www.mathworks.com/matlabcentral/answers/15887-how-to-render-an-accurate-image-of-a-3d-model) जो 3 डी व्यू और 2 डी से संबंधित कुछ अनियंत्रित अक्ष गुणों का उल्लेख करता है प्रक्षेपण – Amro