主頁 > 知識庫 > 使用canvas繪制貝塞爾曲線

使用canvas繪制貝塞爾曲線

熱門標(biāo)簽:南通數(shù)據(jù)外呼系統(tǒng)推廣 申請400電話流程簡介 外呼線穩(wěn)定線路 外呼系統(tǒng)電話怎么投訴 阜陽企業(yè)外呼系統(tǒng) pageadm實(shí)現(xiàn)地圖標(biāo)注 呼和浩特外呼電銷系統(tǒng)排名 邢臺(tái)縣地圖標(biāo)注app 地圖標(biāo)注位置能賺錢嗎

1、二次貝塞爾曲線

  quadraticCurveTo(cpx,cpy,x,y)  //cpx,cpy表示控制點(diǎn)的坐標(biāo),x,y表示終點(diǎn)坐標(biāo);

數(shù)學(xué)公式表示如下:

二次方貝茲曲線的路徑由給定點(diǎn)P0、P1、P2的函數(shù)B(t)追蹤:

代碼實(shí)例:


復(fù)制代碼
代碼如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>canvas直線</title>
<meta name="Keywords" content="">
<meta name="author" content="@my_programmer">
<style type="text/css">
body, h1{margin:0;}
canvas{margin: 20px;}
</style>
</head>
<body onload="draw()">
<h1>二次貝塞爾曲線</h1>
<canvas id="canvas" width=200 height=200 style="border: 1px solid #ccc;"></canvas>
<script>
function draw() {
var canvas=document.getElementById('canvas');
var context=canvas.getContext('2d');
//繪制起始點(diǎn)、控制點(diǎn)、終點(diǎn)
context.beginPath();
context.moveTo(20,170);
context.lineTo(130,40);
context.lineTo(180,150);
context.stroke(); </p> <p> //繪制2次貝塞爾曲線
context.beginPath();
context.moveTo(20,170);
context.quadraticCurveTo(130,40,180,150);
context.strokeStyle = "red";
context.stroke();
}
</script>
</body>
</html>

代碼效果:

2、三次貝塞爾曲線

  bezierCurveTo(cp1x,cp1y,cp2x,cp2y,x,y)  //cp1x,cp1y表示第一個(gè)控制點(diǎn)的坐標(biāo),cp2x,cp2y表示第二個(gè)控制點(diǎn)的坐標(biāo),x,y表示終點(diǎn)的坐標(biāo);

數(shù)學(xué)公式表示如下:

P0、P1、P2、P3四個(gè)點(diǎn)在平面或在三維空間中定義了三次方貝茲曲線。曲線起始于P0走向P1,并從P2的方向來到P3。一般不會(huì)經(jīng)過P1或P2;這兩個(gè)點(diǎn)只是在那里提供方向資訊。P0和P1之間的間距,決定了曲線在轉(zhuǎn)而趨進(jìn)P3之前,走向P2方向的“長度有多長”。

代碼實(shí)例:


復(fù)制代碼
代碼如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>canvas直線</title>
<meta name="Keywords" content="">
<meta name="Description" content="">
<style type="text/css">
body, h1{margin:0;}
canvas{margin: 20px; }
</style>
</head>
<body onload="draw()">
<h1>三次貝塞爾曲線</h1>
<canvas id="canvas" width=200 height=200 style="border: 1px solid #ccc;"></canvas>
<script>
function draw() {
var canvas=document.getElementById('canvas');
var context=canvas.getContext('2d');
//繪制起始點(diǎn)、控制點(diǎn)、終點(diǎn)
context.beginPath();
context.moveTo(25,175);
context.lineTo(60,80);
context.lineTo(150,30);
context.lineTo(170,150);
context.stroke(); </p> <p> //繪制3次貝塞爾曲線
context.beginPath();
context.moveTo(25,175);
context.bezierCurveTo(60,80,150,30,170,150);
context.strokeStyle = "red";
context.stroke();
}
</script>
</body>
</html>

代碼效果圖:

是不是很炫酷的效果。。。HTML5+canvas真是個(gè)好玩的東西,上癮了。

標(biāo)簽:辛集 蚌埠 德州 撫順 黃山 楊凌 內(nèi)蒙古 鶴崗

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《使用canvas繪制貝塞爾曲線》,本文關(guān)鍵詞  使用,canvas,繪制,貝,塞爾,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《使用canvas繪制貝塞爾曲線》相關(guān)的同類信息!
  • 本頁收集關(guān)于使用canvas繪制貝塞爾曲線的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章