需要使用: quadraticCurveTo(cp1x, cp1y, x, y);
cp1x: 控制點x坐標
cp1y: 控制點y坐標
x: 結束點x坐標
y: 結束點y坐標
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <canvas id="canv" width="300" height="300"></canvas> <script> function draw() { var canvas = document.getElementById('canv'); if (!canvas.getContext) return; var ctx = canvas.getContext("2d"); ctx.beginPath(); ctx.moveTo(10, 200); //起始點 //繪制二次貝塞爾曲線 ctx.quadraticCurveTo(40, 100, 200, 200); ctx.stroke(); // 為控制點作標記 ctx.beginPath(); ctx.rect(10, 200, 10, 10); ctx.rect(40, 100, 10, 10); ctx.rect(200, 200, 10, 10); ctx.fill(); } draw(); </script> </body> </html>
注意: 貝塞爾曲線的兩個定位點在兩條直線上的速度是一樣的.