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. javascript - vue-cli創(chuàng)建的項(xiàng)目,少一些步驟,對(duì)項(xiàng)目有影響嗎?2. 在mac下出現(xiàn)了兩個(gè)docker環(huán)境3. angular.js - angular內(nèi)容過長展開收起效果4. 如何解決Centos下Docker服務(wù)啟動(dòng)無響應(yīng),且輸入docker命令無響應(yīng)?5. android - Python代碼轉(zhuǎn)為java代碼?6. css3 實(shí)現(xiàn)一個(gè)線性漸變出現(xiàn)的問題?7. css如何隱藏滾動(dòng)條?8. javascript - 一個(gè)是數(shù)組,一個(gè)是對(duì)象,怎么進(jìn)行比較去重?9. css - div外層有一圈白色10. docker start -a dockername 老是卡住,什么情況?
