पर सम्मान के साथ आयताकार समन्वय मैं Surfaceview और कैनवास ड्राइंग का उपयोग कर एंड्रॉइड में कस्टम घटकों को बनाने की कोशिश कर रहा हूं। घटकों को स्पर्श करके पुनः आकार देने योग्य और घूमने योग्य होते हैं। एक छवि दृश्य बनाने पर विचार करें इसके शीर्ष, दाएं, नीचे, और बाएं किनारों को आवश्यक किनारे को छूकर खींचकर स्केल करने योग्य हैं। मैं घटक की सीमाओं को रखने के लिए RectF
का उपयोग कर रहा हूं, घूर्णन के लिए मैं canvas.rotate(angle, bounds.centerX(),bounds.centerY())
विधि का उपयोग कर रहा हूं। समस्या शीर्ष किनारे का आकार बदलते समय है, चलो, दाएं और नीचे किनारों को ठीक किया जाना चाहिए, और यदि रोटेशन कोण 0 डिग्री से अधिक है तो मैं इसे ठीक करने में सक्षम नहीं हो सकता। वास्तविक आयताकार सीमाओं के संबंध में घूर्णन आयत के एक्स, वाई निर्देशांक को खोजने के लिए मुझे गणित समाधान की आवश्यकता है।रोटेशन कोण
मैं इसे कुछ छवियों की सहायता से समझा सकता हूं। निम्नलिखित चित्र दो आयतों को प्रदर्शित करता है जिनके सीमाएं भी संबंधित रंगों में जानी जाती हैं और प्रदर्शित होती हैं। ग्रीन रेक्ट पर घटक प्रारंभिक सीमाओं के रूप में विचार करें, यानी। -45 डिग्री से घिरा हुआ, केंद्र (10,10) है। अब फिर से आकार करने शीर्ष बढ़त आयत के और प्रदर्शित जा रहा अगले चित्रा 2.
में चित्र 2 से यह समझा जाता है कि Y स्थिति 6. घुमाया से 4 कम हो जाता है आयत गुलाबी रंग में भी दिखाया गया है। याद रखें कि घटक रोटेशन कोण -45 डिग्री पर है, जबकि खींचते समय शीर्ष एज आयताकार बाएं, दाएं और नीचे की स्थिति नहीं बदला जाना चाहिए। तो चित्रा 2 का गुलाबी आयताकारहोना चाहिएजैसा चित्र 1 का ग्रीन आयताकार के समान है। प्राप्त की और उम्मीद आयत की तुलना चित्रा 3. में दिखाया गया है
3 चित्र पीले रंग आयत अपेक्षित/आवश्यक बाहर कर दिया जाता है। आयत प्राप्त गुलाबी रंगग्रीन घुमावदार आयताकार की तुलना में ऊपर की ओर स्थानांतरित हो गया है और यह अलग-अलग घूर्णन कोण पर निर्भर करता है।
- मैं रोटेशन कोण = -45 डिग्री
- वास्तविक की सीमा (नहीं का आकार) आयत की है।
- रोटेशन = -45 डिग्री पर वास्तविक (आकार में नहीं) आयत के बाउंड।
- पुन: आकार के आयत के बाउंड।
- रोटेशन = -45 डिग्री पर पुन: आकार के आयत के बाउंड।
मैं येलो आयताकार के बाउंड/केंद्र की गणना कैसे करूं। ताकि मैं अपने घटकों के आकार को सही ढंग से कार्यान्वित कर सकूं? मुझे बताएं कि क्या कोई गणित है जिसे लागू किया जा सकता है?
आवश्यक अंक/निर्देशांक चित्रा 3.
बस घुमाने बिंदुओं पर खत्म हो जाएगा, बेसिक सूत्रों हैं: x_ = एक्स * क्योंकि (कोण) - y * पाप (कोण); y_ = y * पाप (कोण) + वाई * कोस (कोण); http://en.wikipedia.org/wiki/Rotation_(mathematics) – user1410657