मुझे पता है कि यहाँ उत्तर दिया गया है लेकिन उन सभी को घूर्णी मैट्रिक्स और ओपन में quaternions से निपटने के लिए लग रहे हैं 3 डी रोटेशन के बारे में सवाल का सेवन (और मैं वास्तव में परवाह नहीं है अगर मैं जिम्बल ताला पाने के देखते हैं)। मुझे एक बिंदु के 3 डी निर्देशांक EX: (x, y, z) प्राप्त करने की आवश्यकता है जो हमेशा एक ही दूरी होनी चाहिए, मैं इसे मूल से "डी" कहूंगा। इनपुट के रूप में मेरे पास एकमात्र जानकारी स्क्रीन पर माउस का डेल्टेक्स और डेल्टे है। अब तक यहाँ है कि मैं क्या कोशिश की है:3 डी रोटेशन
पहले:
thetaxz+=(omousex-mouseX)/(width);
thetaxy+=(omousey-mouseY)/(height);
(thetaxy पर एक्स पर एक्स रेडियन में कोण, y अक्ष और thetaxz, z अक्ष है) (मैं दोनों कोण की सीमा ताकि अगर वे 0 के बराबर या उससे कम कर रहे हैं वे बराबर 2 * पीआई)
दूसरा:
pointX=cos(thetaxz)*d;
pointY=sin(thetaxy)*d;
(pointX बिंदु के x निर्देशांक और नुकीले y है)
तीसरा:
if(thetaxz)<PI){
pointZ=sqrt(sq(d)-sq(eyeX/d)-sq(eyeY/d));
}else{
pointZ=-sqrt(abs(sq(d)-sq(eyeX/d)-sq(eyeY/d)));
}
(pointZ बिंदु के z समन्वय होना चाहिए (वर्ग() एक समारोह है कि वर्गों और पेट() एक निरपेक्ष मान समारोह है) और यह सकारात्मक z के बीच क्रॉसिंग पर छोड़कर है गोलार्द्ध और नकारात्मक जेड गोलार्ध। चूंकि यह किनारे तक पहुंचता है, यह दूरी उस दूरी से आगे बढ़ जाती है जब यह हमेशा एक्स और वाई में होती है और प्रतीत होता है कि यह 0.17.2 थैक्सैक्स के रेडियंस के आसपास यादृच्छिक रूप से है, जेड समन्वय एनएएन या अपरिभाषित हो जाता है)
मेरे पास है थोड़ी देर के लिए इस बारे में सोचा, और सचमुच मुझे quaternions और घूर्णन matrices की अवधारणा के आसपास अपने सिर warping में कठिनाई हो रही है, हालांकि यदि आप मुझे दिखा सकते हैं कि वास्तविक निर्देशांक उत्पन्न करने के लिए उन्हें कैसे उपयोग करें मुझे सीखने में खुशी होगी। मैं अभी भी इसे पसंद करूंगा अगर मैं कुछ धुरी में कुछ त्रिकोणमिति का उपयोग कर सकता हूं। किसी भी मदद के लिए अग्रिम धन्यवाद और यदि आपको अधिक जानकारी चाहिए तो कृपया पूछें।
सुझाव/अंतिम समय विचार: मुझे लगता है कि x व y स्थितियां वापस प्रभावित करने z स्थिति के साथ कुछ हो सकता है लेकिन मुझे यकीन नहीं कर रहा हूँ।
संपादित करें: मैं एक चित्र आकर्षित किया:
मैं 100% इस वास्तव में आप क्या चाहते है नहीं कर रहा हूँ, लेकिन मुझे लगता है कि आप [gluUnProject] में देखना चाहते हो सकता है (http://nehe.gamedev.net/article/using_gluunproject/16013 /) कैमरा मैट्रिस के आधार पर 2 डी निर्देशांक को 3 डी में परिवर्तित करने के लिए। इसे निकट और दूर कैमरे के विमानों पर एक बिंदु के लिए करें, और उसके बाद अपनी परिणामी रेखा के साथ बिंदु खोजने के लिए कुछ ट्रिग का उपयोग करें जो मूल से वांछित दूरी है। नोट 0, 1 या 2 समाधान हालांकि इस समस्या का देखते हैं कि, लाइन – Hybrid
आप मूल समस्या एक छोटे से स्पष्ट राज्य कर सकते हैं पर निर्भर करता है, शायद एक तस्वीर के साथ? –
मैंने एक तस्वीर लिंक जोड़ा क्योंकि मेरे पास केवल 1 प्रतिनिधि है क्योंकि मैं इस साइट पर नया हूं। –