2012-02-09 7 views
6

समस्या: हम एसवीजी पाठ कि चर फॉन्ट-फेस, font-size, स्थिति, पैमाने, एसवीजी में रोटेशन के साथ RaphaelJS में बनाया गया था को दोहराने की जरूरत है।जोड़ तोड़/एसवीजी में <text> अनुवाद (बाउंडिंग बॉक्स जोड़ने)

लेकिन ... राफेल टेक्स्ट के लिए एक बाउंडिंग बॉक्स का उपयोग करता है जिसमें एक ऊंचाई है जो स्ट्रिंग की वास्तविक ऊंचाई से स्वतंत्र है। बाउंडिंग बॉक्स की ऊंचाई फ़ॉन्ट-आकार और फ़ॉन्ट-फ़ैमिली पर आधारित है, लेकिन वास्तविक स्ट्रिंग से स्वतंत्र है। तो "वाई" और "," (एक ही फ़ॉन्ट-फेस और फ़ॉन्ट आकार के साथ) की एक स्ट्रिंग समान ऊंचाई है।

जब हम एसवीजी (इसे PHP में उत्पन्न करके) में पाठ को फिर से बनाते हैं तो हम फ़ॉन्ट आकार सही और फ़ॉन्ट-परिवार को सही कर सकते हैं। हालांकि, एसवीजी की ऊंचाई वास्तविक स्ट्रिंग से स्वतंत्र नहीं है। तो एक "," एक बहुत कम ऊंचाई होगी तो एक "वाई"। ऊंचाई में यह अंतर रोटेशन और पोजिशनिंग तोड़ता है।

प्रश्न: कैसे हम उस RaphaelJS के getBBox तो हम RaphaelJS से रोटेशन और स्थिति की नकल कर सकते हैं (जो अनिवार्य रूप से सिर्फ एक बॉक्स है कि यह किसी भी चरित्र फिट आकार) प्रतिकृति एक 'बाउंडिंग बॉक्स' के साथ svg बना सकता हूँ? नोट: यदि हम मदद करते हैं, तो हम एसवीजी के लिए पाठ-> पथ को परिवर्तित कर सकते हैं। हमारे पास फ़ॉन्ट फ़ाइलों तक पहुंच है।

enter image description here

संपादित: मुद्दा मैट्रिक्स() आदेश का उपयोग और सीधे परिवर्तनों से अधिक का अनुवाद द्वारा हल किया गया था, के रूप में स्थिति को लागू करने के लिए, तो स्केलिंग, तो रोटेशन करने का विरोध किया।

+1

अच्छी तरह से तैयार प्रश्न, +1। मुझे समझ में नहीं आया कि बाउंडिंग बॉक्स कहां से आते हैं, PHP उदाहरण से (जेएस उदाहरण में आपने राफेलजेएस फ़ंक्शन का उपयोग किया था, इसलिए वर्तमान में उस उदाहरण में "गलत" बाउंडिंग बॉक्स उत्पन्न करने के लिए क्या उपयोग किया जा रहा है?)। –

+0

मेरे द्वारा +1 भी, और मुझे यह भी जानने में दिलचस्पी होगी कि PHP बाउंडिंग बॉक्स कैसे पढ़े जाते हैं (सीसी @ कैमिलो मार्टिन)। वर्तमान में मैं 'इनक्सस्केप' का उपयोग कर रहा हूं जैसा कि मैंने [यहां समझाया है] (http://stackoverflow.com/a/10078156/472495) लेकिन यह देखना अच्छा होगा कि कोई बेहतर तरीका है या नहीं। – halfer

उत्तर

1

यदि आप शब्दों के अंदर चरित्र की स्थिति में हेरफेर करना चाहते हैं: वाक्य और एसवीजी जो आप सर्वर पर उत्पन्न कर रहे हैं तो आपको एसवीजी टैन का उपयोग करने और चरित्र की स्थिति उन्मुख करने में सक्षम होना चाहिए। यदि आप पथ में अक्षरों को बदल सकते हैं तो मुझे लगता है कि एल्गोरिदम संभव होगा। आपके अल्फान्यूमेरिक फ़ॉन्ट सेट (ओं) के लिए सापेक्ष स्थिति की सरणी बनाने से रोकने के लिए कुछ भी नहीं है। मुझे आशा है कि उपरोक्त में से कुछ उपयोगी है ...

संबंधित मुद्दे