2013-04-10 6 views
5

में इसके घूर्णन के आधार पर ऑब्जेक्ट को स्थानांतरित करना मैं अपने घूर्णन के आधार पर तीन.जेएस में घन को स्थानांतरित करने की कोशिश कर रहा हूं लेकिन इस बारे में निश्चित नहीं है कि इसके बारे में कैसे जाना है।तीन.जेएस

अभी तक मैं घन के जेड-रोटेशन को ए & डी कुंजी के साथ घुमा सकता हूं। और डब्ल्यू कुंजी के साथ मैं इसे अपने घूर्णन के सापेक्ष आगे बढ़ना चाहता हूं।

2 डी से मैं बहुत की तर्ज पर कुछ होगा:

float angle = GradToRad(obj.rotation); 
obj.x = obj.x + cos(angle) * velocity; 
obj.y = obj.y + sin(angle) * velocity; 

यहाँ वर्तमान कार्यान्वयन की एक छवि है। 3D Cube three.js

मैं तीन.जेएस में कुछ कैसे लागू कर सकता हूं?

उत्तर

7

ऑब्जेक्ट्स को उनके सकारात्मक-जेड अक्ष का सामना करना पड़ सकता है। तो एक वस्तु आगे बढ़ने के लिए, अपने आप की तुलना में समन्वय प्रणाली, आप उपयोग कर सकते हैं

Object3D.translateZ(distance); 

Three.js r.57

+0

हां लेकिन ज़ेड अक्ष के साथ अनुवाद करने से मेरी वस्तु को इसके घूर्णन के सापेक्ष स्थानांतरित करने की अनुमति नहीं मिल जाएगी। मतलब यह है कि जब मैं ऑब्जेक्ट को बदलता हूं तो मैं इसके "चेहरे" के साथ आगे बढ़ना चाहता हूं। – Placeable

+0

आपकी ऑब्जेक्ट "फेस" किस दिशा में रोटेटियन वेक्टर है (0, 0, 0) है? घूर्णन लागू होने के बाद वह स्थानीय दिशा है जिसे आप स्थानांतरित करना चाहते हैं। – WestLangley

+0

मैं जेड-अक्ष के चारों ओर घूमता हूं। – Placeable

0

एक एकल (समरूप प्रोजेक्टिव) 4×4 matrix दोनों में घूर्णन और अनुवाद दोनों को व्यक्त करना सबसे आसान हो सकता है। Object3D.matrix सदस्य तीन.जेएस में पहले से ही ऐसा करता है, हालांकि आपको सीधे इसका उपयोग करने के लिए matrixAutoUpdate से false सेट करना पड़ सकता है। फिर आप ऑब्जेक्ट को अपने संदर्भ फ्रेम में स्थानांतरित करने के लिए translate विधि का उपयोग कर सकते हैं।

+0

उपयोगकर्ताओं के लिए यह ऑब्जेक्ट मैट्रिक्स के साथ सीधे तीन.जेएस में गड़बड़ करने के लिए बेहद अव्यवस्थित है। केवल तभी ऐसा करें यदि आप वास्तव में जानते हैं कि आप क्या कर रहे हैं और पुस्तकालय के आंतरिक कार्यों से परिचित हैं। – WestLangley

0

आपका 2 डी विधि वास्तव में कैसे मैं इसे Three.js में किया था। वाई स्थिति के लिए मैं एक इलाके टकराव तकनीक का उपयोग कर रहा हूं (जिसे अभी भी काम की ज़रूरत है);

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