canvas scale 畫布縮放的使用

2021-08-09 09:08:29 字數 2311 閱讀 8760

前兩天把canvas的translate()和rotate()的方法都介紹了下,今天就來說說scale()

scale() 方法縮放當前繪圖,更大或更小。

注釋:如果您對繪圖進行縮放,所有之後的繪圖也會被縮放。定位也會被縮放。如果您 scale(2,2),那麼繪圖將定位於距離畫布左上角兩倍遠的位置。

scale(x,y)

引數:x:x表示橫軸方向上縮放倍數

y:y表示縱軸方向上縮放的倍數

例1:

lang="en">

charset="utf-8">

title>

canvas

style>

head>

width="800"

height="600">

canvas>

var canvas=document.queryselector('canvas');

var ctx=canvas.getcontext('2d');

//初始圓

ctx.arc(400,300,150,0,2*math.pi);

ctx.stroke();

ctx.beginpath();

ctx.scale(1,0.5);

//橫座標不變,縱座標縮放一半,即改變以後圓心的位置(400,150)

//橫向的半徑不變,縱向的半徑縮小一半,即變為了橢圓

ctx.strokestyle='red';

ctx.arc(400,300,150,0,2*math.pi);

ctx.stroke();

script>

body>

html>

顯示效果:

例2:

lang="en">

charset="utf-8">

title>

canvas

style>

head>

width="800"

height="600">

canvas>

var canvas=document.queryselector('canvas');

var ctx=canvas.getcontext('2d');

//初始圓

ctx.arc(400,300,150,0,2*math.pi);

ctx.stroke();

ctx.beginpath();

ctx.scale(0.5,1);

//縱座標不變,橫座標縮放一半,即改變以後圓心的位置(200,300)

//縱向的半徑不變,橫向的半徑縮小一半,即變為了橢圓

ctx.strokestyle='red';

ctx.arc(400,300,150,0,2*math.pi);

ctx.stroke();

script>

body>

html>

顯示效果:

例3:

lang="en">

charset="utf-8">

title>

canvas

style>

head>

width="800"

height="600">

canvas>

var canvas=document.queryselector('canvas');

var ctx=canvas.getcontext('2d');

//初始圓

ctx.arc(200,200,50,0,2*math.pi);

ctx.stroke();

ctx.beginpath();

ctx.scale(2,2);

//橫縱座標都放大了2倍

//半徑也放大了2倍

ctx.strokestyle='red';

ctx.arc(200,200,50,0,2*math.pi);

ctx.stroke();

script>

body>

html>

顯示效果:

精益畫布 聽過 商業畫布 ,那麼 精益畫布 呢?

初創公司面對著無數的不確定性。eric ries 注 精益創業 作者 今天為大家帶來的是精益畫布入門篇,你了解 精益畫布 嗎?如果你是初次創業,我相信你會獲益匪淺。無論你是創業開端無法起手執行,還是創業路上如無頭蒼蠅亂闖,還是想提高效率理清自己的專案思路,精益畫布都能為你一一解決。首先來看看精益畫布...

商業畫布要素

商業模式分析 細分使用者 為誰創造價值?誰說我們的最重要客戶?價值主張 我們向客戶傳遞什麼樣的價值?我們在幫客戶解決什麼樣的難題?我們正在滿足客戶哪些需求?我們準備提供哪些系列服務和產品?渠道通道 哪些渠道能接觸客戶群體?我們如何接觸他們?我們的渠道如何整合?哪些渠道更有效 成本收益最好?如何把我們...

畫布與水印

建立畫布 在記憶體中存放 img imagecreatetruecolor 200,100 建立顏色 imagecolorallocate 新建乙個真彩色影象,返回乙個影象識別符號,代表了一幅大小為width和height的黑色影象 返回值 成功後返回影象資源,失敗後返回false color im...