第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

繪制圓

1. 前言

前面我們學(xué)習(xí)繪制的路徑都是以直線為主,比如線段、折線或者是繪制的矩形,它們都是由直線組成的。今天開始,我們學(xué)習(xí)曲線的繪制。本小節(jié)就先從如何畫一個(gè)圓開始。

2. 利用 arc 方法繪制圓

繪制圓在 canvas 中是常用的方法,在 canvas API 中直接提供了一個(gè)封裝好的繪制圓的方法 arc()。 這個(gè)方法接收 5 個(gè)必填參數(shù)x,y,r,sAngle,eAngle,還有一個(gè) Boolean 類型的可選參數(shù) counterclockwise,用于規(guī)定是從順時(shí)針還是逆時(shí)針開始繪制路徑。

先看整體案例:

實(shí)例演示
預(yù)覽 復(fù)制
復(fù)制成功!
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>慕課網(wǎng)Wiki</title>
    <style>
        #imooc{
            border:1px solid #ccc;
        }
    </style>
</head>
<body>
	
	<canvas id="imooc">您的瀏覽器不支持 HTML5 canvas 標(biāo)簽</canvas>
	
	<script>
		const canvas = document.getElementById('imooc');
		canvas.width=300
		canvas.height=300
		const ctx = canvas.getContext('2d');
		ctx.strokeStyle="#456795";
		ctx.lineWidth=8;
		
		ctx.arc(150, 150, 100, 0, 2*Math.PI);  //調(diào)用了直接繪制圓的函數(shù)
	
		ctx.stroke();
	</script>
</body>
</html>
運(yùn)行案例 點(diǎn)擊 "運(yùn)行案例" 可查看在線運(yùn)行效果

運(yùn)行結(jié)果:

我們從案例中可以看到,繪制一個(gè)圓形路徑只需要調(diào)用一個(gè)函數(shù)即可,arc 方法和我們之前學(xué)過的 rect 繪制矩形的方法類似,也是繪制了一個(gè)路徑,我們后續(xù)對路徑的描邊或者填充依然是需要調(diào)用 stroke 或者 fill 方法。

3. arc 方法參數(shù)

前面提到 arc 方法有 5 個(gè)必填參數(shù)和1個(gè)可選參數(shù),我們詳細(xì)地說明一下這幾個(gè)參數(shù)的用途。

前三個(gè)參數(shù):x,y,r 分別代表了圓心坐標(biāo) (x, y)和要繪制圓的半徑,這個(gè)很好理解,我們著重講一下后面三個(gè)參數(shù)。

我們先來看一張圖片:

上圖中,x,y,r 分別對應(yīng)著圓的中心和半徑,圖里還有一個(gè)開始角和結(jié)束角,這就是第四個(gè)參數(shù) sAngle 和第五個(gè)參數(shù) sAngle 表示的內(nèi)容。明白了 5 個(gè)必填參數(shù)的含義,我想同學(xué)們應(yīng)該可以想到 act 方法不僅可以畫整圓,也是可以畫半圓的,我們只需要調(diào)整開始角和結(jié)束角的大小即可。

我們看一個(gè)案例:

實(shí)例演示
預(yù)覽 復(fù)制
復(fù)制成功!
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>慕課網(wǎng)Wiki</title>
    <style>
        #imooc{
            border:1px solid #ccc;
        }
    </style>
</head>
<body>
	
	<canvas id="imooc">您的瀏覽器不支持 HTML5 canvas 標(biāo)簽</canvas>
	
	<script>
		const canvas = document.getElementById('imooc');
		canvas.width=300
		canvas.height=300
		const ctx = canvas.getContext('2d');
		ctx.strokeStyle="#456795";
		ctx.lineWidth=8;
		
		ctx.arc(150, 150, 100, 0, 1*Math.PI);  // 繪制半圓
	
		ctx.stroke();
	</script>
</body>
</html>
運(yùn)行案例 點(diǎn)擊 "運(yùn)行案例" 可查看在線運(yùn)行效果

執(zhí)行結(jié)果:

我們可以看到從 0 到 π 的一個(gè)半圓已經(jīng)繪制好了。我們注意到默認(rèn)繪制半圓是順時(shí)針繪制的,如果我想讓逆時(shí)針繪制應(yīng)該怎么做呢?這時(shí)我們就用到了 arc 方法的第六個(gè)可選參數(shù):counterclockwise。

我們還是用上一個(gè)案例來說明。

實(shí)例演示
預(yù)覽 復(fù)制
復(fù)制成功!
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>慕課網(wǎng)Wiki</title>
    <style>
        #imooc{
            border:1px solid #ccc;
        }
    </style>
</head>
<body>
	
	<canvas id="imooc">您的瀏覽器不支持 HTML5 canvas 標(biāo)簽</canvas>
	
	<script>
		const canvas = document.getElementById('imooc');
		canvas.width=300
		canvas.height=300
		const ctx = canvas.getContext('2d');
		ctx.strokeStyle="#456795";
		ctx.lineWidth=8;
		
		ctx.arc(150, 150, 100, 0, 1*Math.PI, true);  // 繪制半圓,傳遞了第六個(gè)參數(shù)為 true
	
		ctx.stroke();
	</script>
</body>
</html>
運(yùn)行案例 點(diǎn)擊 "運(yùn)行案例" 可查看在線運(yùn)行效果

運(yùn)行結(jié)果:

這樣我們就讓圓弧實(shí)現(xiàn)了逆時(shí)針繪制。

不知道同學(xué)們有沒有注意到上面兩個(gè)案例中半圓都是沒有閉合的一條弧線,如果想要閉合也很簡單,只需要調(diào)用我們之前學(xué)習(xí)過的 closePath() 即可。

案例:

實(shí)例演示
預(yù)覽 復(fù)制
復(fù)制成功!
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>慕課網(wǎng)Wiki</title>
    <style>
        #imooc{
            border:1px solid #ccc;
        }
    </style>
</head>
<body>
	
	<canvas id="imooc">您的瀏覽器不支持 HTML5 canvas 標(biāo)簽</canvas>
	
	<script>
		const canvas = document.getElementById('imooc');
		canvas.width=600
		canvas.height=300
		const ctx = canvas.getContext('2d');
		ctx.strokeStyle="#456795";
		ctx.lineWidth=8;
		
		ctx.arc(150, 150, 100, 0, 1*Math.PI, false);  // 繪制半圓,傳遞了第六個(gè)參數(shù)為 true
		ctx.closePath()
		ctx.stroke();
		
		ctx.beginPath();
		ctx.arc(450, 150, 100, 0, 1*Math.PI, true);  // 繪制半圓,傳遞了第六個(gè)參數(shù)為 true
		ctx.closePath()
		ctx.stroke();
		
	</script>
</body>
</html>
運(yùn)行案例 點(diǎn)擊 "運(yùn)行案例" 可查看在線運(yùn)行效果

運(yùn)行結(jié)果:

執(zhí)行了 closePath() 就可以得到一條閉合的路徑了。

4. 方法整理

本小節(jié)中我們使用到一個(gè)新的方法 arc()。

4.1 arc()方法

arc 方法作用是繪制一個(gè)起點(diǎn)在 (x, y)、半徑為 r 的圓弧,圓弧由起始角和結(jié)束角控制。

變量說明:

變量名 類型 是否必須 說明
x Number 指定圓心位置的X坐標(biāo)。
y Number 指定圓心位置的Y坐標(biāo)。
r Number 圓的半徑。
sAngle Number 起始角,以弧度計(jì),(弧的圓形的三點(diǎn)鐘位置是 0 度)。
eAngle Number 結(jié)束角,以弧度計(jì)。
counterclockwise Boolean 規(guī)定應(yīng)該逆時(shí)針還是順時(shí)針繪圖,false = 順時(shí)針,true = 逆時(shí)針。

5. 總結(jié)

本小節(jié)我們主要學(xué)習(xí)了利用 arc 方法繪制整圓和半圓形以及閉合圓弧。我們下一節(jié)將會(huì)講另外一種繪制圓弧的方法。