css3 - canvas畫對角線很模糊
問題描述
使用canvas畫一個(gè)p的對角線,先算p的width和height,再賦給canvas的width和height,然后建立一個(gè)2d畫布開始畫,為什么畫出的斜線很模糊,改成直線就還好?感覺沒有被因?yàn)閜和畫布的大小不同而放大或縮小
var canvasDom = document.querySelector('.canvas_line'); var w = parseInt($(canvasDom).css('width')); var h = parseInt($(canvasDom).css('height')); canvasDom.width = w; canvasDom.height = h; var context = canvasDom.getContext(’2d’);; context.beginPath(); context.moveTo(0,0); context.lineTo(w, h); context.lineWidth = '1'; context.strokeStyle = 'red'; context.stroke();
問題解答
回答1:如果你使用的設(shè)備太高清了,你可以嘗試下這樣的操作:
對canvas使用css樣式(style屬性)來確定在頁面內(nèi)的高寬
設(shè)置canvas的width和height屬性的值為css樣式的高寬的2倍
開始享受你的繪圖
回答2:嘗試 moveTo(0.5,0.5);
回答3:找到一篇文章,希望對你有幫助:HTML5 Canvas 如何取消反鋸齒繪圖
回答4:樓主你好,你需要在canvas元素里面給width和height屬性。如果你在css里面定義canvas的width和height就會(huì)出現(xiàn)線條模糊的情況,因此你的更改JS
原:var w = parseInt($(canvasDom).css('width')); 改:var w = parseInt($(canvasDom).style('width'));
同理,height部分也需要這樣改動(dòng)
相關(guān)文章:
1. javascript - js 有什么優(yōu)雅的辦法實(shí)現(xiàn)在同時(shí)打開的兩個(gè)標(biāo)簽頁間相互通信?2. css3 - Typecho 后臺(tái)部分表單按鈕在 Chrome 下出現(xiàn)靈異動(dòng)畫問題,求解決3. javascript - angular和jquery都用到了$符號(hào),一起用會(huì)不會(huì)沖突?4. javascript - 怎樣限制同一個(gè)瀏覽器不能登錄兩個(gè)賬號(hào)5. 想找個(gè)php大神仿個(gè)網(wǎng)站。6. java - android代碼重構(gòu):如何把a(bǔ)pp設(shè)置里的頭像UI做成通用的?7. java - 新手做一個(gè)安卓視頻播放器,想實(shí)現(xiàn)一個(gè)進(jìn)度條,按鈕那種在視頻下方懸浮的功能,不知道思路!8. javascript - jquery怎么給select option一個(gè)點(diǎn)擊時(shí)觸發(fā)的事件,如圖 如果選擇自定義觸發(fā)一個(gè)時(shí)間?9. nginx配置server模塊的問題10. mysql優(yōu)化 - 關(guān)于mysql分區(qū)
