2013-02-14 36 views
9

में घूर्णन ऑब्जेक्ट के कोनों के निर्देशांक खोजें मान लीजिए कि मेरे पास एक कपड़े कैनवास में एक छवि है। मैं आसानी से छवि के top & left मानों और उसके आकार के आधार पर कोनों के निर्देशांक की गणना कर सकता हूं।fabricjs

जब छवि किसी भी डिग्री से घूमती है तो मैं ऐसा कैसे कर सकता हूं?

उदाहरण:

enter image description here

संपादित करें: अधिमानतः त्रिकोणमिति के उपयोग के बिना, वहाँ एक सरल तरीका ही fabricjs या कहीं और में लागू है यदि।

+0

शुरू अंक की गणना करें, और उसके बाद की गणना करने के एक मैट्रिक्स का उपयोग जहां वे रोटेशन के आधार पर कर रहे हैं> http://en.wikipedia.org/ विकी/रोटेशन_ (गणित) – BenM

+0

धन्यवाद - मेरा संपादन देखें। – seldary

+0

आपको त्रिकोणमिक्स का उपयोग करना होगा। इसके लिए एक अंतर्निहित विधि नहीं है। – BenM

उत्तर

17

हां, ज़ाहिर है।

हम में उन लोगों के निर्देशांक की दुकान वस्तु की oCoords

oCoords.tl.x, oCoords.tl.y // top left corner 
oCoords.tr.x, oCoords.tr.y // top right corner 
oCoords.bl.x, oCoords.bl.y // bottom left corner 
oCoords.br.x, oCoords.br.y // bottom right corner 

क्या सेट हो जाता है है कि जब आप setCoords विधि कॉल।

लेकिन शायद आप उन लोगों के साथ गड़बड़ नहीं करना चाहते हैं।

संस्करण ~ 1.0.4 के बाद से, हमारे पास getBoundingRect सभी ऑब्जेक्ट्स पर विधि है, जो { left: ..., top: ..., width: ..., height: ... } देता है। हमारे पास पहले से ही getBoundingRectWidth और getBoundingRectHeight पहले (अब बहिष्कृत) था लेकिन getBoundingRect निश्चित रूप से अधिक उपयोगी है; यह बाएं/शीर्ष मूल्यों को भी पढ़ने की अनुमति देता है।

आप http://fabricjs.com/bounding-rectangle/ पर कार्रवाई में इसे देख सकते हैं (घूर्णन वस्तुओं की कोशिश)

+2

धन्यवाद - मैंने ओकोर्ड का उपयोग किया जो कि सही है। Math.sin की कोई ज़रूरत नहीं है! यह मुझे 9 डिफ़ॉल्ट लोगों की बजाय किसी ऑब्जेक्ट के केवल दो कोनों में कस्टम किए गए हैंडल को "संलग्न" करने की अनुमति देता है ... – seldary

+2

लिंक अनुपलब्ध है –

+0

लिंक http://fabricjs.com/bounding-rectangle है (बिना पीछे की स्लैश के) – kikap