2013-10-24 11 views
5

मैं पथ तत्व का उपयोग करके दो svg लाइनों को प्रस्तुत करने की कोशिश कर रहा हूं। पहली पंक्ति में 1px चौड़ाई है और यह तेज दूसरी पंक्ति में 2px चौड़ाई है और यह धुंधला है
स्ट्रोक-चौड़ाई दोनों के लिए समान है। इसएसवीजी पिक्सेल स्नैपिंग को संभालने के लिए कैसे करें

<svg xmlns="http://www.w3.org/2000/svg" version="1.1"> 
<path style="stroke-width:1;stroke:red;opacity:1;" d="M 300.5 250 L 300.5 300 "></path> 
<path style=" stroke-width:1;stroke:red;opacity:1;" d="M 350 250 L 350 300 "></path> 
</svg> 

उत्तर

11

ठीक करने के लिए मुख्य रूप से यह 0.5 ऑफसेट कि लाइन तेज बनाता है। By default, integer coordinates map to the intersections of the pixel squares. So a width-1 horizontal/vertical line is centered on the boundary between pixel rows and extends half way into the pixels on either side.

तो दूसरी पंक्ति को ठीक करने के लिए या तो समन्वय में 0.5 जोड़ें या शैली shape-rendering: crispEdges का उपयोग करें। ध्यान दें कि crispEdges एंटीअलाइजिंग को रोकता है इसलिए क्षैतिज/ऊर्ध्वाधर रेखाएं कुरकुरे हैं लेकिन कोण वाली रेखाएं अवरुद्ध दिखती हैं।

इसके अलावा स्ट्रोक-चौड़ाई = 1 मान्य सीएसएस वाक्यविन्यास नहीं है। पहला उदाहरण स्ट्रोक-चौड़ाई: 1 सही है।

+0

बहुत बहुत धन्यवाद। मैंने सीएसएस सिंटैक्स को सही किया। यह गलती से जोड़ा गया था। आपका समाधान मेरे लिए काम किया। यदि मेरे पास कुछ कोणों पर झुका हुआ है, तो crispEdges का उपयोग करने के बाद, वे चिकनी दिखते नहीं हैं जैसे वे लाइनों पर कुछ कदम हैं। क्या आप कोई समाधान करते हैं? मुझे घूमने या झुकाए जाने पर भी चिकनी और तेज रेखाएं चाहिए। क्या आप मेरी इस क्वेरी का जवाब भी दे सकते हैं http://stackoverflow.com/questions/17203352/div-within-svg-foreign-object-tag-is-not-transforming-when-it-has-an-opacity-0 –

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