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. 數(shù)組按鍵值封裝!2. java - web項(xiàng)目中,用戶登陸信息存儲(chǔ)在session中好 還是cookie中好,取決于什么?3. angular.js - webpack build后的angularjs路由跳轉(zhuǎn)問題4. Mysql取下一條記錄5. mysql - 查詢字段做了索引為什么不起效,還有查詢一個(gè)月的時(shí)候數(shù)據(jù)都是全部出來的,如果分拆3次的話就沒問題,為什么呢。6. mysql - 大部分?jǐn)?shù)據(jù)沒有行溢出的text字段是否需要拆表7. 老師,怎么不講一次性添加多個(gè)數(shù)據(jù)8. python - linux 下用wsgifunc 運(yùn)行web.py該如何修改代碼9. pdo - mysql 簡(jiǎn)單注入疑問10. 表格對(duì)其 只涉及到對(duì)其,沒有涉及到大小,長(zhǎng)寬還有背景色類的嗎
