如果你正在學(xué)習(xí)JavaScript,前端開(kāi)發(fā)就必須熟悉canvas,這是HTML5中的畫布元素。作為一個(gè)重要的JavaSript API,canvas提供了多種方法來(lái)繪制各種形狀,例如矩形、線條,還有一個(gè)特別的方法——arc()。
arc()方法是canvas API中繪制弧形或圓形的最基本方法之一。使用此方法可以在畫布上繪制任意半徑和角度程度的圓弧,還能夠控制繪制的方向和開(kāi)始和結(jié)束角度。
arc()方法有6個(gè)參數(shù),前兩個(gè)是圓心的x、y坐標(biāo);第三個(gè)是半徑,后兩個(gè)參數(shù)則是起始角和終止角(弧度制,而非角度制),最后一個(gè)Boolean類型的參數(shù)表示是否使用逆時(shí)針
//x軸坐標(biāo)、y軸坐標(biāo)、半徑、開(kāi)始角度、結(jié)束角度、順/逆時(shí)針 context.arc(x, y, radius, startAngle, endAngle, anticlockwise);
當(dāng)我們需要在canvas上繪制一個(gè)圓或弧時(shí),可以通過(guò)arc()方法實(shí)現(xiàn)。例如繪制一個(gè)綠色半徑為25像素的圓:
var ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.arc(100, 100, 25, 0, 2 * Math.PI);
ctx.fillStyle = "green";
ctx.fill();
這里我們使用beginPath()方法創(chuàng)建一個(gè)新的繪制路徑,然后使用arc()方法指定圓心、半徑以及起始角和終止角,最后我們使用fillStyle屬性設(shè)置填充顏色,再使用fill()方法填充圓形
在實(shí)際使用過(guò)程中,我們經(jīng)常需要繪制弧線而非完整的圓形。例如我們需要繪制一個(gè)50px半徑,橙色弧線,起始角度為30度,結(jié)束角度為80度,逆時(shí)針?lè)较颍?/p>
var ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.arc(100, 100, 50, Math.PI / 180 * 30, Math.PI / 180 * 80, true);
ctx.strokeStyle = "orange";
ctx.stroke();
這里我們同樣使用beginPath()方法創(chuàng)建路徑,在arc()方法中傳入圓心、半徑、起始角度、結(jié)束角度和true參數(shù)來(lái)定義逆時(shí)針?lè)较颍缓笫褂胹trokeStyle屬性設(shè)置描邊顏色,最后使用stroke()方法繪制描邊
在繪制弧線時(shí),還需要注意的是開(kāi)始和結(jié)束角度必須是弧度制,而非角度制。我們可以使用Math.PI(3.14...)和乘除來(lái)代替角度制
如何使一個(gè)y軸相反的弧線,就是說(shuō),弧線朝下而不是朝上呢?
var ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.arc(100, 100, 50, Math.PI / 180 * 30, Math.PI / 180 * 80, false);
ctx.strokeStyle = "blue";
ctx.stroke();
這里只需要將arc()方法的最后一個(gè)參數(shù)設(shè)為false即可。如果使用false,則圓弧將以順時(shí)針?lè)较蚶L制,而非逆時(shí)針?lè)较?/p>
總結(jié)而言,JavaScript中的arc()方法是canvas API中最基本的方法之一,它可用于繪制任意半徑和角度程度的圓弧,并且可以控制繪制的方向和開(kāi)始/結(jié)束角度。這個(gè)方法雖然簡(jiǎn)單,但卻是實(shí)現(xiàn)許多圖形效果的基礎(chǔ)。如果你正在學(xué)習(xí)前端開(kāi)發(fā),了解并掌握arc()方法將有助于你更好的掌握canvas的繪圖。