お寿司か焼き肉食べたい

まじめな事からしょーもない事まで
めにゅーを開く(投げやり)

くんくるりんと円をくるくる

完全な円でなく、円弧をも描けるのです。

context.arcTo(x1, y1, x2, y2, radius)

さて、円弧です。
結構これもややこしくて、直前の座標と直線でつながる円弧を作成する際に使用するようで。
開始点から、x1y1を経由してx2y2へ向かう。
で、経由するときに、radius(円の半径)分ぐにゃっと曲がって伸びていく的な感じ。
使い勝手がよう分からん(;´Д`)

var canvas1 = document.getElementById('canvas01');
if (canvas1.getContext) {
  var context1 = canvas1.getContext('2d');
  // 新しいパスを開始する
  context1.beginPath();
  // 100 30の位置に筆を置く
  context1.moveTo(10,30);

  // 制御点を150 70にセットし、曲線の終点を200 30に設定する
  context1.arcTo(130, 150, 220, 70, 80);

  // 線引いちゃう
  context1.stroke();
}

context.arc(x, y, radius, startAngle, endAngle [, anticlockwise ] )

円を描きます。
引数は若干アレなので、説明もいれましょう

x

円の中心点のx軸の位置です。

y

円の中心点のy軸の位置です。

radius

円の半径

startAngle

円弧の開始角度

endAngle

円弧の終了角度

anticlockwise

円弧の作成方向
反時計回り(true)
時計回り(false)で指定(初期値はfalse)

var canvas2 = document.getElementById('canvas02');
// なんかねーここでwidth height設定してなかったら楕円になっちゃう
canvas2.width = 200;
canvas2.height = 200;
if (canvas2.getContext) {
  var context2 = canvas2.getContext('2d');
  // 新しいパスを開始する
  context2.beginPath();

  // 角度の設定を別変数でやる(引数に直接指定してもOK)
  // 角度はラジアンが単位となり、[度数÷180×π]を行う必要がある
  // JSの場合πに関しては、Math.PIで取得できるのでそれを使用します
  var startAngle = 0 * Math.PI / 180;
  var endAngle = 360 * Math.PI / 180;
  context2.arc(25, 25, 20, startAngle, endAngle, true);

  // 線引いちゃう
  context2.stroke();
}

context.rect(x, y, w, h)

四角を描きます。
てめぇさっきやっただろこのやろう
と言いたい所ですが。さっきやったのは、描画まで一気にやるタイプ。
きちんとパスを作成しての方法になります。
やることは一緒なんですけどね

var canvas3 = document.getElementById('canvas03');
canvas3.width = 200;
canvas3.height = 200;
if (canvas3.getContext) {
  var context3 = canvas3.getContext('2d');
  // 新しいパスを開始する
  context3.beginPath();
  
  // 四角のパス生成
  context3.rect(25, 25, 20, 20);

  // 線引いちゃう
  context3.stroke();
}