## 第三課時:矩形
以下方法用來繪制矩形。
* `CanvasRenderingContext2D.rect()`:繪制矩形路徑。
* `CanvasRenderingContext2D.fillRect()`:填充一個矩形。
* `CanvasRenderingContext2D.strokeRect()`:繪制矩形邊框。
* `CanvasRenderingContext2D.clearRect()`:指定矩形區域的像素都變成透明。
上面四個方法的格式都一樣,都接受四個參數,分別是矩形左上角的橫坐標和縱坐標、矩形的寬和高。
`CanvasRenderingContext2D.rect()`方法用于繪制矩形路徑。
```
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
ctx.rect(10, 10, 100, 100);
ctx.fill();
```
上面代碼繪制一個正方形,左上角坐標為`(10, 10)`,寬和高都為 100。
`CanvasRenderingContext2D.fillRect()`用來向一個矩形區域填充顏色。
~~~
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
ctx.fillStyle = 'green';
ctx.fillRect(10, 10, 100, 100);
~~~
上面代碼繪制一個綠色的正方形,左上角坐標為`(10, 10)`,寬和高都為 100。
`CanvasRenderingContext2D.strokeRect()`用來繪制一個矩形區域的邊框。
~~~
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
ctx.strokeStyle = 'green';
ctx.strokeRect(10, 10, 100, 100);
~~~
上面代碼繪制一個綠色的空心正方形,左上角坐標為`(10, 10)`,寬和高都為 100。
`CanvasRenderingContext2D.clearRect()`用于擦除指定矩形區域的像素顏色,等同于把早先的繪制效果都去除。
~~~
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
ctx.fillRect(10, 10, 100, 100);
ctx.clearRect(15, 15, 90, 90);
~~~
上面代碼先繪制一個 100 x 100 的正方形,然后在它的內部擦除 90 x 90 的區域,等同于形成了一個 5 像素寬度的邊框。
- 第一章:音視頻
- 第一節:概述
- 第二節:媒體元素
- 第三節:視頻元素
- 第四節:音頻元素
- 第四節:事件
- 第二章:高德地圖
- 第三章:Storage 接口
- 第一節:概述
- 第二節:屬性和方法
- 第三節:事件
- 第四章:IndexedDB
- 第一節:概述
- 第二節:基本概念
- 第三節:indexedDB 對象
- 第四節:IDBRequest 對象
- 第五節:IDBDatabase 對象
- 第六節:IDBObjectStore 對象
- 第七節:IDBTransaction 對象
- 第八節:IDBIndex 對象
- 第九節:IDBCursor 對象
- 第十節:IDBKeyRange 對象
- 第十一節:操作流程
- 第五章:Canvas
- 第一節:概述
- 第二節:繪制圖像
- 第一課時:路徑
- 第二課時:線型
- 第三課時:矩形
- 第四課時:弧線
- 第五課時:文本
- 第六課時:漸變色和圖像填充
- 第七課時:陰影
- 第三節:圖像處理
- 第一課時:寫入圖像
- 第二課時:像素讀寫
- 第三課時:保存和恢復
- 第四課時:畫布
- 第五課時:圖像變換
- 第四節:元素方法
- 第一課時:toDataURL()
- 第二課時:toBlob()
- 第五節:使用實例
- 第一課時:動畫效果
- 第二課時:像素處理