पर मैं एक बिंदु और ओरिएंट पर सामान्य रूप से तीन.जेएस और 3 डी प्रोग्रामिंग में नया हूं, इसलिए यह एक बहुत ही सरल सवाल प्रतीत हो सकता है। आदर्श रूप में, मुझे आशा है कि उत्तर अंतर्निहित सिद्धांतों को समझने में मेरी सहायता कर सकता है।Three.js - किसी ऑब्जेक्ट को देखने के लिए किसी ऑब्जेक्ट को घुमाने के लिए कैसे करें
मेरे पास एक ऑब्जेक्ट है जिसे किसी अन्य बिंदु (मूल, इस मामले में, सादगी के लिए) पर "बिंदु" करने की आवश्यकता है, जिसे Object3D.lookAt(point)
फ़ंक्शन के साथ आसानी से किया जा सकता है। यह बिंदु पर वस्तु के जेड अक्ष को अच्छी तरह से इंगित करता है।
मैं अपने जेड अक्ष के चारों ओर looker
नामक अपनी वस्तु को घुमाने के लिए भी चाहता हूं, जैसे एक्स एक्स अक्ष आमतौर पर किसी अन्य ऑब्जेक्ट की ओर जाता है, refObj
। मुझे पता है कि एक्स अक्ष सीधे refObj
पर इंगित नहीं कर सकता है जब तक कि ऑब्जेक्ट मूल के साथ सही कोण न हो। मैं नीचे के रूप में diagramed origin
, refObj
और looker
द्वारा बनाई विमान पर झूठ looker
की एक्स अक्ष चाहते हैं,:
रोटेशन करने का सबसे आसान तरीका है looker.rotation.z
संशोधित करने के लिए लग रहे हैं, लेकिन मैं यह नहीं पता कि मूल्य क्या होना चाहिए इसकी गणना कैसे करें।
सामान्यतः, मुझे lookAt
फ़ंक्शन का एक विस्तारित संस्करण चाहिए जो एक दूसरा समन्वय लेता है जिसके लिए एक्स अक्ष उन्मुख होगा। कुछ इस तरह:
function lookAtAndOrient(objectToAdjust, pointToLookAt, pointToOrientXTowards)
{
// First we look at the pointToLookAt
objectToAdjust.lookAt(pointToLookAt);
// Then we rotate the object
objectToAdjust.rotation.z = ??;
}
मैं बनाया है एक jsFiddle with the example diagramed above