需要使用ctx.arcTo(), 參數是兩個控制點的坐標, 比如下面的例子:
<!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(50, 50); //參數1、2:控制點1坐標 參數3、4:控制點2坐標 參數4:圓弧半徑 ctx.arcTo(200, 50, 200, 200, 140); ctx.lineTo(200, 200) ctx.stroke(); // 繪制控制點 ctx.beginPath(); ctx.rect(50, 50, 5, 5); ctx.rect(200, 50, 5, 5) ctx.rect(200, 200, 5, 5) ctx.fill(); } draw(); </script> </body> </html>
注意:
1. ctx.arcTo() 可以繪制與兩條直線相切的圓弧;
2. ctx.rect() 可以繪制閉合的矩形;
function draw() {
var canvas = document.getElementById('canv');
if (!canvas.getContext) return;
var ctx = canvas.getContext("2d");
ctx.beginPath();
ctx.rect(100, 100, 100, 50);
ctx.stroke();
}
draw();