平移變換translate()
平移變換,故名思議,就是一般的圖形位移。例如這裡我想將位於(100,100)的矩形平移至(200,200)點。那我只要在繪製矩形之前加上context.translate(100,100)即可。
這裡的translate()只傳入兩個參數,其實就是新畫布座標係原點的座標。下面結合程式碼來看看效果。
XML/HTML Code複製內容到剪貼簿
- html>
-
html lang="zh" >
-
頭>
-
元 字符集 字符集 字符集
-
字符集 字符集 字符集 字符集>
-
標題>平移變身
>-
-
樣式>
正文 { 背景: url("./images/bg3.jpg") 重複; } -
#canvas { 邊框: 1px solid #aaaaaa; 顯示:區塊; 邊距:50px 自動; }
樣式>
- 頭
>-
身體>
div id=id=id=id=- id=id=id=id=id> ">
畫布 id="畫布" >
你的瀏覽器居然不支援Canvas? !趕緊換一個吧! !
-
畫布>
-
div>
-
- 腳本>
-
window.onload = 函數(){🎜>函數(){ >
- var 畫布 = canvas.width
= - 800 = 800 =
canvas.height =
var 情境 = canvas - context.fillStyle =
context.fillRect(0,0,800,600);
-
context.fillStyle = "#00AAAAAAA
context.fillRect(100,100,200,100);
-
-
- context.fillStyle =
context.translate(100,100);
context.fillRect(100,100,200,100);
-
-
};
-
腳本>
-
-
身體
- >
-
-
html>
- 運行結果:
這裡的藍色擬合,是原來的位置,然後呼叫translate()方法,將預估非線性至(200,200),即紅色擬合的位置。我們來用一張圖看看,它是怎麼退出now直播帳號。實作平移變換的。
其實,其實這裡的平移變換外觀就是在平移座標系,而對translate()建立的參數,實質就是新座標系相對於舊座標系的原點。這使得我們依然在(100, 100)膚色的膚色,在平移座標系之後,變到了(200,200)處。
注意使用狀態保存:
其實這裡有個坑,我們想如果把曲線平移至(300,300)怎麼辦呢?也許我們會想,直接呼叫context.translate(200,200)就可以了。好,我們看看效果。 -
JavaScript 程式碼 將內容複製到剪切板
-
- "zh">
-
- "UTF-8">
- 平移变换
-
-
-
"canvas-warp">
-
- 你的浏览器居然不支持Canvas?!赶快换一个吧!!
-
-
-
-
window.onload = 函數(){
-
var canvas = document.getElementById("
canvas.width = 800; -
canvas.height = 600; -
-
var context = canvas.getContext("2d"
context.fillStyle =
- "#FFF";
context.fillRect(0,0,800,600);
-
-
context.fillStyle =
- "#00AAAA";
context.fillRect(100,100,200,100);
-
-
context.fillStyle =
- 「紅色」;
context.translate(100,100);
-
context.fillRect(100,100,200,100);
-
-
context.fillStyle =
- "綠色";
context.translate(200,200);
-
context.fillRect(100,100,200,100);
-
-
};
-
腳本>
-