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. 如何解決docker宿主機無法訪問容器中的服務?2. 前端 - CSS3 box-shadow如何設置,或者用什么方法可以產生圖中這樣陰影的效果。3. node.js - vue-cll+sass 樣式不出來 已經npm install sass、 sass-loader了4. html - css 如何讓文字標題顯示在邊框上?5. docker 下面創建的IMAGE 他們的 ID 一樣?這個是怎么回事????6. 在應用配置文件 app.php 中找不到’route_check_cache’配置項7. html按鍵開關如何提交我想需要的值到數據庫8. vim中編輯HTML文件時換行不能縮進9. HTML5中怎么判斷用戶是否正在瀏覽頁面?10. html - 微信端video標簽播放mp4視頻,安卓端提示視頻解析錯誤
