css3 - canvas畫對角線很模糊
問題描述
使用canvas畫一個p的對角線,先算p的width和height,再賦給canvas的width和height,然后建立一個2d畫布開始畫,為什么畫出的斜線很模糊,改成直線就還好?感覺沒有被因為p和畫布的大小不同而放大或縮小
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:如果你使用的設備太高清了,你可以嘗試下這樣的操作:
對canvas使用css樣式(style屬性)來確定在頁面內的高寬
設置canvas的width和height屬性的值為css樣式的高寬的2倍
開始享受你的繪圖
回答2:嘗試 moveTo(0.5,0.5);
回答3:找到一篇文章,希望對你有幫助:HTML5 Canvas 如何取消反鋸齒繪圖
回答4:樓主你好,你需要在canvas元素里面給width和height屬性。如果你在css里面定義canvas的width和height就會出現線條模糊的情況,因此你的更改JS
原:var w = parseInt($(canvasDom).css('width')); 改:var w = parseInt($(canvasDom).style('width'));
同理,height部分也需要這樣改動
相關文章:
1. javascript - vue2.0中使用vue2-dropzone的demo,vue2-dropzone的github網址是什么??百度不到。2. wordpress - nginx 反代 Varnish 走 Https ,WP后臺 ‘您沒有足夠的權限訪問該頁面。’3. angular.js - angularjs 路由切換時給 html 做 id 標示4. python - pip install出現下面圖中的報錯 什么原因?5. python - uwsgi+django的搭建問題6. 安全性測試 - nodejs中如何防mySQL注入7. javascript - 我這個頁面的main的盒模型為什么把header的模型空間也包括了。8. javascript - webpack 多入口文件生成HTML文件;9. vue計算屬性怎么樣與for結合使用10. angular.js - vue/react 渲染內容抖動
