css3 - canvas畫對(duì)角線很模糊
問題描述
使用canvas畫一個(gè)p的對(duì)角線,先算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è)備太高清了,你可以嘗試下這樣的操作:
對(duì)canvas使用css樣式(style屬性)來確定在頁面內(nèi)的高寬
設(shè)置canvas的width和height屬性的值為css樣式的高寬的2倍
開始享受你的繪圖
回答2:嘗試 moveTo(0.5,0.5);
回答3:找到一篇文章,希望對(duì)你有幫助: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. css - 如何把一個(gè)視圖放在左浮動(dòng)定位的視圖的上面?2. python的正則怎么同時(shí)匹配兩個(gè)不同結(jié)果?3. php多任務(wù)倒計(jì)時(shí)求助4. javascript - axios請(qǐng)求回來的數(shù)據(jù)組件無法進(jìn)行綁定渲染5. javascript - vue中怎么使用原生js插件6. MySQL的聯(lián)合查詢[union]有什么實(shí)際的用處7. javascript - jquery怎么讓a標(biāo)簽跳轉(zhuǎn)后保持tab的樣式8. css - 子元素跑到父元素外面9. javascript - 小demo:請(qǐng)教怎么做出類似于水滴不斷擴(kuò)張的效果?10. javascript - 請(qǐng)問下面代碼中的...是擴(kuò)展運(yùn)算符還是操作運(yùn)算符?這樣寫是什么意思?
