官术网_书友最值得收藏!

3.2 繪制簡單圖形

canvas元素本身并不能實現圖形繪制,需要和JavaScript腳本結合起來。首先,給canvas元素添加一個id屬性,在JavaScript腳本中通過id屬性尋找對應的canvas元素。然后通過canvas元素的getContext()方法獲取其上下文,即創建Context對象,以獲取允許進行繪制的2D環境。最后通過Context對象的相關方法完成繪制,例如fillStyle()方法、fillRect()方法等。

進行繪制時,需要指定確定的坐標位置,坐標原點(0, 0)位于canvas的左上角,x軸水平方向向右延伸,y軸垂直向下延伸,如圖3-2所示。

圖3-2 canvas元素的坐標

3.2.1 繪制直線

Context對象的moveTo(x, y)方法是將畫筆移動到指定的坐標點(x, y),lineTo(x, y)方法是從落筆點繪制路徑到坐標點(x, y)。只使用以上兩個方法是無法在畫布上看到直線的,使用lineTo(x, y)方法繪制路徑,要使路徑在畫布上顯示出來,還需要進行描邊。可以連續繪制多條路徑,然后使用stroke()方法一次性描邊??梢允褂肅SS設置繪制直線的樣式,例如,line.html。

line.html:

line.html在瀏覽器中的顯示效果如圖3-3所示。

圖3-3 line.html的顯示效果

3.2.2 繪制矩形

canvas元素可以繪制兩種矩形:一種是填充矩形,另一種是矩形輪廓。Context對象的fillRect()方法用來繪制填充矩形,strokeRect()方法用來繪制矩形輪廓。

fillRect()方法的前兩個參數為矩形的左上角的坐標,后兩個參數為矩形的寬度和高度。strokeRect()方法的參數與fillRect()方法的參數含義相同。設置矩形的外觀可以使用fillStyle屬性和strokeStyle屬性。fillStyle屬性用來設置矩形區域的填充顏色,strokeStyle屬性用來設置矩形輪廓的顏色。例如,rect.html,繪制一個填充矩形、一個矩形輪廓。

rect.html:

rect.html在瀏覽器中的顯示效果如圖3-4所示。

圖3-4 rect.html的顯示效果

3.2.3 繪制圓或圓弧

canvas元素可以用來繪制圓或圓弧,方法有beginPath()、arc()、closePath()、fill()。

1.beginPath()

開始一條路徑或重置路徑;

2.arc(x, y, r, sAngle, eAngle, counterclockwise)

x、y為圓心的坐標,r為圓的半徑,sAngle為以弧度計的起始角,eAngle為以弧度計的結束角,counterclockwise參數可選,規定逆時針或順時針繪圖,true為逆時針,false為順時針。

3.closePath()

閉合路徑,如果圖形本來就是閉合的,則此方法不起作用。

4.fill()

填充當前的路徑或圖像,默認的顏色是黑色。

例如,arc.html,繪制一個圓和若干條圓弧。

arc.html:

arc.html在瀏覽器中的顯示效果如圖3-5所示。

圖3-5 arc.html的顯示效果

3.2.4 繪制三角形

使用繪制路徑的方法可以自由繪制出三角形等多邊形。例如,triangle.html,繪制一個填充色為綠色的三角形。

triangle.html:

triangle.html在瀏覽器中的顯示效果如圖3-6所示。

圖3-6 triangle.html的顯示效果

主站蜘蛛池模板: 余干县| 宣武区| 庆云县| 科技| 泊头市| 渑池县| 平谷区| 济源市| 驻马店市| 开阳县| 麦盖提县| 临潭县| 长武县| 德钦县| 东港市| 阜阳市| 莱芜市| 聂荣县| 保亭| 长阳| 宝清县| 蒲江县| 武山县| 桃园市| 鄂州市| 郓城县| 罗山县| 双流县| 清远市| 荥阳市| 额尔古纳市| 达拉特旗| 包头市| 卢龙县| 婺源县| 海伦市| 锦屏县| 公安县| 富顺县| 安宁市| 龙江县|