国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > HTML5 > 正文

淺析canvas元素的html尺寸和css尺寸對元素視覺的影響

2024-09-05 07:22:55
字體:
來源:轉載
供稿:網友

遇到的問題:canvas元素變形失真的原因

一個DOM元素存在三種尺寸:style尺寸,html尺寸,css尺寸。

使用canvas元素時,canvas元素默認寬高是300px * 150px。這里的默認尺寸是html尺寸。

為了更好地幫助理解,以作畫為例。畫板是css尺寸或者style尺寸,畫布是html尺寸。

如果我們沒有顯示指定canvas元素的html尺寸,而在css文件中指定了它的css尺寸。結果是十分令人困惑。

例如我們在一個默認300px * 150px的畫布上畫了一個圓半徑為50px的圓。

<html lang="zh"><head>    <meta charset="UTF-8">    <title>canvas尺寸</title>    <style>        #canvas {            width: 200px;            height: 200px;        }    </style></head><body><div>    <canvas id="canvas"></canvas></div><script>    window.onload = function () {        const canvas = document.getElementById("canvas");        const ctx = canvas.getContext("2d");        ctx.beginPath();        ctx.strokeStyle = "#aaaaaa";        ctx.arc(100, 100, 50, 0, 2 * Math.PI);        ctx.stroke();        ctx.closePath();    };</script></body></html>

最后顯示的結果如下:

可以看出畫布的尺寸確實是200 * 200。但是圓已經變成了橢圓,圖形發生了形變。這是為什么呢?

如果移除css設定的尺寸又會怎么樣呢?

可以看出此時圖形是正常的。畫布的尺寸確實是默認的300 * 150。

從對比以及想象中我們可以得出結論:

起初我們是在300 150的畫布上繪制一個圓。繪制完成之后,我們又希望將畫布的尺寸變成200 200,同時畫布還是那塊畫布,不作更換。

可行的方法是將畫布經行拉伸。假設畫布存在彈性,那么一塊畫布從300 150拉伸成200 200。畫布上的圓的長半軸變成原來的1.33倍,短半軸變成0.68倍。此時圓自然就是橢圓了。

結論:

在使用canvas畫圖的時候,為了避免不必要的麻煩,一定記得為canvas元素設定html尺寸的寬高。

總結

以上所述是小編給大家介紹的淺析canvas元素的html尺寸和css尺寸對元素視覺的影響,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 全椒县| 安福县| 南澳县| 竹北市| 彩票| 德格县| 甘孜县| 洮南市| 龙胜| 金乡县| 闵行区| 大余县| 临桂县| 华蓥市| 荔浦县| 稻城县| 商河县| 胶南市| 镇沅| 元阳县| 阳高县| 南陵县| 张掖市| 临泽县| 宣化县| 正安县| 桐庐县| 扎赉特旗| 阿克陶县| 元氏县| 彰武县| 绍兴县| 永州市| 天水市| 盐亭县| 泰顺县| 星子县| 安西县| 云林县| 北碚区| 崇文区|