मैं D3.js के साथ बहुत नया हूं, और मैं बल लेआउट के साथ खेल रहा हूं। मैंने कोशिश की चीजों में से एक लिंक पर लेबल रख रहा था। यह ऐसा करने काD3.js बल लेआउट - एज लेबल प्लेसमेंट/रोटेशन
एक तरह से svg:text
जोड़कर और मैन्युअल translate
& rotate
है, जो सीधे लाइनों के साथ ठीक काम करता है की गणना के द्वारा है। लेकिन, यदि लिंक svg:path
(उदा। आर्क) है, तो यह अपेक्षा के अनुसार काम नहीं करता है। इन मामलों में, svg:textPath
समाधान का सुझाव दिया गया है।
this demo में, आप svg:textPath
के माध्यम से लिंक जोड़ने के लिए एक सरल कार्यान्वयन देख सकते हैं। इसके साथ एकमात्र समस्या यह है कि, जब स्रोत लक्ष्य के दाईं ओर स्थित होता है, तो टेक्स्ट विपरीत दिशा में प्रस्तुत किया जाता है (हमारे दृष्टिकोण से, यह अभी भी पथ के परिप्रेक्ष्य से सही है)। मेरा सवाल है, इस से निपटने के लिए कैसे?
केवल "समाधान" मैं ऊपर वर्णित मामले में मैन्युअल रूप से स्रोत और लक्ष्य को स्वैप कर रहा हूं। Here, आप देख सकते हैं कि यह लगभग काम करता है।
राज्य में जब स्वैप होता है, आप भी चाप दूसरी तरफ, जो सही नहीं लगता है के लिए flipping देख सकते हैं। :(
आप 'टेक्स्टपाथ' के लिए एक टेक्स्ट दिशा निर्दिष्ट नहीं कर सकते - पाठ हमेशा पथ की दिशा का पालन करता है। तो आपके पास जो समाधान है वह एकमात्र व्यवहार्य है। –