मेरे पास g
तत्व है जिसमें एक या अधिक path
तत्व शामिल हैं। जैसा कि मैंने another question में उल्लेख किया है, मैं g
तत्व को transform
विशेषता का कंप्यूटिंग करके स्केल और अनुवाद करता हूं ताकि यह कैनवास के किसी अन्य भाग में ग्रिड पर फिट हो।GetBBox() SVGRect की गणना कैसे की जाती है?
गणना दो आयताकारों के बीच अंतर, getBBox()
g
तत्व और ग्रिड के चारों ओर आयताकार के बीच अंतर का उपयोग करके की जाती है।
यहाँ सवाल यह है कि - मैं बदलना है के बाद, मैं g
तत्व की सामग्री को अद्यतन करने और बिना फिर से getBBox()
फोन, transform
को हटाने। परिणामस्वरूप आयताकार की गणना transform
पर विचार किए बिना की जाती है। मैं उम्मीद करता हूं कि यह बदलाव को प्रतिबिंबित करे। क्या यह व्यवहार एसवीजी विनिर्देश के अनुरूप है? मैं रूपांतरित आयत के बाध्यकारी बॉक्स को कैसे प्राप्त करूं?
यह, बीटीडब्ल्यू, फ़ायरफ़ॉक्स 4 में चल रहे एक HTML 5 दस्तावेज़ में है, यदि इससे कोई फर्क पड़ता है।
अद्यतन: स्पष्ट रूप से यह व्यवहार विनिर्देश के उल्लंघन में स्पष्ट रूप से स्पष्ट रूप से प्रतीत होता है। पाठ here at w3c से:
SVGRect getBBox()
वर्तमान उपयोगकर्ता अंतरिक्ष में तंग सीमांकन बॉक्स देता है (यानी, 'परिणत' विशेषता के आवेदन, यदि कोई हो के बाद) सभी की ज्यामिति पर निहित ग्राफिक्स तत्व, स्ट्रोकिंग, क्लिपिंग, मास्किंग और फ़िल्टर प्रभावों के अनन्य)। ध्यान दें कि जब विधि को अभी तक प्रस्तुत नहीं किया गया है, तब भी प्राप्त करने के लिए GetBBox को वास्तविक बाउंडिंग बॉक्स वापस करना होगा।
क्या मैं इसे सही ढंग से पढ़ रहा हूं? यदि ऐसा है तो यह एसवीजी कार्यान्वयन फ़ायरफ़ॉक्स का उपयोग करता है में एक इरेटा प्रतीत होता है; मुझे किसी अन्य को आजमाने का मौका नहीं मिला है। अगर कोई मुझे कहां इंगित कर सकता है तो मैं एक बग रिपोर्ट दर्ज करूंगा।
ब्राउज़र में एसवीजी समर्थन अभी भी 10 साल बाद हिट या मिस है। (अकेले SMIL ... :() –