91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

清空canvas畫布內容的方法有哪些

發布時間:2021-05-20 11:19:28 來源:億速云 閱讀:2431 作者:小新 欄目:web開發

這篇文章給大家分享的是有關清空canvas畫布內容的方法有哪些的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

我們知道,清空canvas畫布內容有以下兩個方法。

第一種方法是cearRect函數:

context.cearRect(0,0,canvas.width,canvas.height)

第二種方法就是用原值重新設置一下canvas的寬(或者高)

canvas.width = canvas.width
// or 
canvas.height = canvas.height

第二種方法可以起作用,是因為canvas的一個特點:

每當畫布的高度或寬度被重設時,畫布內容就會被清空。相關內容可以參考 https://www.w3school.com.cn/html5/att_canvas_width.asp

在一個可視化項目中,我們發現在一些電腦上面總是會出現效果錯亂的情況。

經過調試,我們發現,原來是“canvas.width = canvas.width”惹的禍。普通屏幕下面下不會有問題,但是如果屏幕是高清屏,就會出現問題。這是因為,高清屏下,我們為了處理繪制圖形模糊的問題,通常會做如下處理:

function setupCanvas(canvas) {
        let width = canvas.width,
          height = canvas.height,
          dpr = window.devicePixelRatio || 1.0;
        if (dpr != 1.0 ) {
          canvas.style.width = width + "px";
          canvas.style.height = height + "px";
          canvas.height = height * dpr;
          canvas.width = width * dpr;
          ctx.scale(dpr, dpr);
        }
      }

我們知道,高清屏下window.devicePixelRatio都大于1。所以在繪圖之前畫筆會被縮放:

ctx.scale(dpr, dpr);

我們知道cavnas是基于狀態的繪圖組件。 其中縮放比例值也在狀態管理之中。 當我們重新設置canvas的寬(高也一樣)的時候,不僅會清空canvas的畫布內容,同時還會把繪圖狀態重置到最原始的狀態,原始狀態下畫筆的縮放比例是1,縮放比例值會被重置為1,因而導致繪制效果錯亂。

感謝各位的閱讀!關于“清空canvas畫布內容的方法有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

罗甸县| 临汾市| 承德县| 山西省| 治县。| 老河口市| 阳城县| 河北区| 云林县| 汉源县| 安庆市| 黔西| 南汇区| 荣昌县| 土默特右旗| 贵南县| 延庆县| 阿尔山市| 枣庄市| 滁州市| 平度市| 旌德县| 平阴县| 曲阜市| 连平县| 竹溪县| 洮南市| 清流县| 容城县| 洛浦县| 南城县| 开鲁县| 阿拉尔市| 宜良县| 巢湖市| 吴忠市| 毕节市| 启东市| 甘谷县| 阳泉市| 宣恩县|