Canvas要素でグラフィックス描画を行う際、arc()メソッドを使用して円弧を描くことができます。この記事では、arc()メソッドの基本的な使い方から応用例まで、わかりやすく解説します。

arc()メソッドの基本的な使い方

arc()メソッドの構文は以下の通りです:

context.arc(x, y, radius, startAngle, endAngle, counterclockwise)

各パラメータの意味は以下の通りです:

  • x: 円の中心のX座標
  • y: 円の中心のY座標
  • radius: 円の半径
  • startAngle: 開始角度(ラジアン)
  • endAngle: 終了角度(ラジアン)
  • counterclockwise: 描画方向(省略可能、デフォルトはfalse)

基本的な円弧の描画例

const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');

// 円弧を描く
ctx.beginPath();
ctx.arc(100, 100, 50, 0, Math.PI, false);
ctx.stroke();

円を描画する

完全な円を描くには、開始角度を0、終了角度を2πにします:

ctx.beginPath();
ctx.arc(100, 100, 50, 0, Math.PI * 2);
ctx.stroke();

よくあるつまずきポイントと解決策

1. 円弧が表示されない

- beginPath()を忘れていないか確認

- stroke()またはfill()を実行しているか確認

2. 角度の計算

- ラジアンへの変換が必要(度数 × Math.PI / 180)

実践的な使用例

扇形の描画

ctx.beginPath();
ctx.moveTo(100, 100);
ctx.arc(100, 100, 50, 0, Math.PI / 2);
ctx.lineTo(100, 100);
ctx.fill();

アニメーションの作成

let angle = 0;
function animate() {
    ctx.clearRect(0, 0, canvas.width, canvas.height);
    ctx.beginPath();
    ctx.arc(100, 100, 50, 0, angle);
    ctx.stroke();
    angle += 0.1;
    requestAnimationFrame(animate);
}
animate();

まとめ

arc()メソッドを使用することで、円弧や円を簡単に描画することができます。基本的なパラメータを理解し、beginPath()とstroke()/fill()を適切に使用することが重要です。アニメーションや複雑な図形の作成にも応用できる便利なメソッドです。

実際の開発では、角度の単位や描画の順序に注意を払いながら使用してください。また、Canvas APIの他のメソッドと組み合わせることで、より複雑で魅力的なグラフィックスを作成することができます。