आकार रोटेशन समस्या - जावा 2 डी

मैं एक साधारण खेल विकसित कर रहा हूं जिसमें मुझे एक छोटा लेकिन महत्वपूर्ण मुद्दा सामने आया है। मैंने अपने तर्क में पूर्ण रोटेशन लागू किया है।

जब मैं किसी ऑब्जेक्ट को घूर्णन करना शुरू करता हूं जब ऑब्जेक्ट में कोई रोटेशन नहीं होता है, तो यह ठीक काम करता है और मैं निम्न लिंक में दिखाए गए किसी भी समस्या के बिना किसी भी दिशा में घूम सकता हूं।

प्रारंभिक रोटेशन वीडियो

अब समस्या तब उत्पन्न होती है जब ऑब्जेक्ट में कुछ रोटेशन होता है, और मैं दिशा में घूमने की बजाए दिशा में घुमाने की कोशिश क्यों करता हूं, रोटेशन हमेशा प्रारंभिक रोटेशन से शुरू होता है जैसा कि निम्न लिंक में दिखाया गया है।

रोटेशन समस्या जब आकार में कुछ घूर्णन होता है

मुझे लगता है कि वीडियो सब कुछ दिखाता है, फिर भी यदि आपके कोई प्रश्न हैं तो कृपया मुझसे पूछें।

मुझे लगता है कि समस्या यह है कि, जो भी सर्कल चुना जाता है, माउस पॉइंटर की दिशा में एक सापेक्ष रोटेशन होना चाहिए।

अब मेरे तर्क के बारे में,

माउस प्रेस इवेंट में मैंने अभी चेक किया है

माउस प्रेस

चाहे कैनवास पर आकार चुना गया हो, यदि हां यदि हां में चार सर्किलों में से एक में माउस पॉइंट होता है फिर रोटेशन शुरू करें

माउस खींचें

वेक्टर गणित का उपयोग करना मैं माउस अंक के अनुसार गति अद्यतन,

निम्नलिखित विधि के अनुसार रोटेशन कोण की गणना करें

Math.atan2(rotationVector.getY(), rotationVector.getX());

और इस आकार पर रोटेशन लागू करें।

रोटेशन वेक्टर मैं इस कक्षा से मिलता हूं

वेक्टर रोटेशन

I called above class startMotion in माउस प्रेस and updateMotion in माउस खींचें event.

मुझे क्या याद आ रहा है या कुछ गलत कर रहा है?

0
क्या ऐसा कोई कारण है कि आपने इसे वापस करने से पहले vectAB को सामान्य नहीं किया? क्या आपने यह भी देखा है कि bounds.getCenterX/Y सही निर्देशांक देता है? या शायद त्रुटि उस विधि में है जो आकार में रोटेशन लागू करती है।
जोड़ा लेखक SpiderPig, स्रोत

1 उत्तर

हमें आपकी मदद करने में सक्षम होने के लिए कुछ कोड देखने की आवश्यकता है। ऐसा लगता है जैसे आप रोटेशन को रीसेट करते हैं, जब भी आप रोटेशन शुरू करते हैं, और तब ऑब्जेक्ट जल्दी से स्थानांतरित हो जाता है, जब आप खींचते हैं तो आपके माउस की स्थिति के अनुसार।

0
जोड़ा
क्या आप डीबग करने के लिए पूरा कोड करते हैं?
जोड़ा लेखक Mihir, स्रोत
खैर, पूर्ण माउस क्लिक करें और खींचें फ़ंक्शंस, और चीजों को घूर्णन करने के तरीकों। आपकी अपनी कक्षाओं में से कोई भी, जो आपकी समस्या से प्रासंगिक हैं। आकृतियों की तरह, यदि आप मानक जावा आकार का उपयोग नहीं कर रहे हैं। यह जानना एक अच्छा विचार है कि आप अपनी परियोजना के लिए क्या उपयोग कर रहे हैं, अन्यथा हमारे पास कोई मौका नहीं है। याद रखें, छोटे कोड को आपके प्रश्न में जोड़ा जा सकता है, जबकि पूर्ण वर्ग और विधियों के पास अपना स्वयं का snipt.org हो सकता है (जावा से अपैप से भाषा बदलना याद रखें)
जोड़ा लेखक Ultroman the Tacoman, स्रोत