2015-08-20 8 views
5

प्रॉन में height_of_formatted विधि निर्धारित है, अच्छी तरह से स्वरूपित पाठ की ऊंचाई, ताकि इसकी शीर्ष बाएं समन्वय की गणना की जा सके जब किसी को इसके बीच कुछ एंकर में लंबवत रूप से संरेखित करने की आवश्यकता हो।प्रशंसित: दिए गए बिंदु पर पाठ के एंकर बीच

लेकिन width_of_formatted विधि नहीं है।

मैं ग्राफ ड्राइंग कर रहा हूं, और मुझे टेक्स्ट (डॉट लेबल) को कुछ बिंदु (डॉट स्वयं) से ऊपर केंद्रित करने की आवश्यकता है। तो मुझे पता है कि पाठ के मध्य में डॉट का एक्स-समन्वय है।

मैं पाठ की शुरुआत के एक्स-समन्वय कैसे प्राप्त करूं (इसलिए मैं इसे draw_text और अन्य प्रतिपादन विधियों तक प्रदान कर सकता हूं)?

उत्तर

2

यदि आप draw_text के बजाय bounding_box का उपयोग करते हैं तो आप टेक्स्ट के लिए बाउंडिंग बॉक्स की चौड़ाई निर्दिष्ट कर सकते हैं। फिर यदि आप पाठ को केंद्र-संरेखित करते हैं तो आप मध्य के सटीक एक्स-समन्वय को निर्दिष्ट करने में सक्षम होना चाहिए। (यह बॉक्स की एक्स-स्थिति प्लस आधा चौड़ाई है)

मान लें कि आपके पास एक्स-समन्वय 72 पर एक बिंदु था और आप लेबल "हैलो वर्ल्ड!" रखना चाहते हैं। तो शब्द का केंद्र एक ही एक्स-समन्वय है। आप नहीं जानते कि कैसे विस्तृत शब्द "हैलो" है, लेकिन आप यकीन है कि यह चौड़ाई का एक बॉक्स के अंदर फिट करेंगे कर रहे हैं 500

72 - (500/2) = -178

bounding_box([-178, 100], :width => 500) do 
    text "hello world!", align => :center 
end 
+0

लेकिन मुझे चौड़ाई नहीं पता, यह बिंदु – EugZol

+0

है यदि आप चाहें तो पेज के रूप में टेक्स्ट_बॉक्स की चौड़ाई बना सकते हैं। पाठ इसमें केंद्रित होगा और शेष बॉक्स दिखाई नहीं देगा। मैं –

+0

उत्तर में एक उदाहरण डालूंगा जो यह करेगा, धन्यवाद! – EugZol

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