2 बातें।
सबसे पहले, विषम लाइनविड्थ (1, 3, 5, ...) पूर्णांक पूर्णांक पिक्सेल मानों पर खींचे गए साथ कभी भी लागू नहीं होंगे। ऐसा इसलिए है क्योंकि एक्स और वाई अपने केंद्रों की बजाय पिक्सेल के बीच की जगह को संदर्भित करते हैं। तो 1 का एक स्ट्रोक [1,1] से [1,10] तक चलता है आधा पिक्सेल के बाएं कॉलम पर पिक्सेल में आधा और दाएं से दाएं। यदि आप उस पंक्ति को [1.5,1] से [1.5,10] तक खींचते हैं तो यह बाएं आधे से बाएं और दाएं से दाएं भरता है, पूरे पिक्सेल कॉलम को पूरी तरह से भरता है।
कोई भी विषम संख्या चौड़ाई इस व्यवहार को दिखाएगी, लेकिन संख्याएं भी नहीं होगी क्योंकि वे प्रत्येक पक्ष पर एक पूर्ण पिक्सेल को साफ दिखते हैं।
दूसरा, बॉक्स कैनवास के शीर्ष से अस्पष्ट है। जब आप अपने 3 पीएक्स स्ट्रोक को [0,0] पर केंद्रित करते हैं तो यह [-1.5, -1.5] के रूप में दूर तक और बाईं ओर फैलता है जो कैनवास की दृश्य सीमा से बाहर है। तो यह आधा मोटा लगता है जैसा होना चाहिए। http://jsfiddle.net/F4cqk/2/
पहले एक अपने कोड की तरह है:
अंतर का सबूत यहाँ देखें। दूसरा चौड़ाई में अपनी वर्दी दिखाने के लिए ऊपरी बाएं किनारे से दूर चले गए हैं। और तीसरा दिखाता है कि उप-पिक्सेल धुंधला होने के बिना 3 पीएक्स स्ट्रोक कैसे प्रस्तुत किया जाए।
स्रोत
2012-04-04 00:59:53
बहुत रोचक प्रतिक्रिया - धन्यवाद। – Wells