Javascript/canvas

解説 canvasスタイル
四角を描画するメソッド

ctx.strokeReact(X開始地点, Y開始地点, Width, Height);
線で四角を描画します。

ctx.fillRect(X開始地点, Y開始地点, Width, Height);
塗りつぶしの四角を描画します。

ctx.clearReact(X開始地点, Y開始地点, Width, Height);
四角でくり抜きます。

スタイルプロパティ
ctx.strokeStyle = "色";
線の色を指定します。

ctx.fillStyle = "色";
塗りの色を指定します。

ctx.lineWidth = 10;
線の幅を指定します。

ctx.lineJoin = "round" or "bevel" or "miter";
線の角を指定します。
代入する値は、'round'などを指定します。

ctx.lineCap = "butt" or "round", "square"
線の端の描画を変更する。
roundなどを指定すると線の端が丸みをおびます。
sample1 s1Canvas
sample1code
function s1Func(){
  var s1Canvas = document.getElementById("s1Canvas").getContext("2d");
  s1Canvas.lineWidth = 10;
  s1Canvas.strokeStyle = "pink";
  s1Canvas.strokeRect(0, 0, 100, 100);
  s1Canvas.fillStyle = "rgba(45,147,96,0.7)";
  s1Canvas.lineCap = "butt";
  s1Canvas.fillRect(50, 50, 100, 100);
  s1Canvas.clearRect(100, 100, 100, 100);
}
グラデーション
塗りのオブジェクトにグラデーションを追加する事も可能です。

ctx.createLinearGradient(X, Y, X, Y)
線形グラデーションのスタイル用オブジェクトを生成します。
最初のXYには、グラデーションの開始位置、次のXYにはグラデーションの終了位置を指定します。

ctx.createRadialGradient(X, Y, R, X, Y, R)
円形グラデーションのスタイル用オブジェクトを生成します。
最初のXYには、グラデーションの開始位置、次のXYにはグラデーションの終了位置を指定します。
Rには円の半径を指定します。

ctx.addColorStop(0.0, [color])
グラデーションのどの位置でどの色を発色するかを指定します。

影を付ける
ctx.shadowColor
影の色を指定します。

ctx.shadowOffsetX
影のX地点を指定します。

ctx.shadowOffsetY
影のY地点を指定します。

ctx.shadowBlur
影のぼかし具合を指定します。

透明度を指定する。
ctx.globalAlpha
0.0 ~ 1.0で透明度を指定します。

canvas内のオブジェクトの変形
オブジェクトを変形させる為には、オブジェクト生成前に変形具合を指定する必要があります。

ctx.scale(X.X, Y.Y)
オブジェクトを拡大・縮小さます。
指定のXYは0.8などの割合を指定します。

ctx.rotate(R)
オブジェクトを回転させます。
度で回転させたい場合は、決まり文句として下記を指定します。

  ctx.rotate(30/180*Math.PI);
回転させたい度数(ここでは30度)に180*円周率の値を割ってあげます。

ctx.translate(X, Y)
オブジェクトを移動させます。
アニメーションなどでも利用するメソッドになります。
sample2 s2Canvas
sample2code
function s2Func(){
  var s2Canvas = document.getElementById("s2Canvas").getContext("2d");
  g = s2Canvas.createLinearGradient(0, 0, 100, 100);
  g.addColorStop(0.0, 'red');
  g.addColorStop(0.5, 'blue');
  g.addColorStop(1.0, 'yellow');
  s2Canvas.fillStyle = g;
  s2Canvas.fillRect(10, 10, 100, 100);
}
	
線を描く

ctx.beginPath()
線を描く事を宣言します。

ctx.moveTo(X, Y)
線の開始位置をしていします。

ctx.lineTo(X, Y)
線の終着点を指定します。
moveToメソッドで指定した箇所からどこに向かって線を引くか指定するイメージです。

ctx.closePath()
終了点という事を明示的に宣言し、開始点に向けて線を引きます。

ctx.stroke()
strokeメソッドを実行されてはじめて線が描画されます。

ctx.fill()
線で書いた図形を塗りつぶしで描画します。
sample3 s3Canvas
sample3code
function s3Func(){
  var s3Canvas = document.getElementById("s3Canvas").getContext("2d");
  s3Canvas.beginPath();
  s3Canvas.moveTo(10,10);
  s3Canvas.lineTo(200,100);
  s3Canvas.lineTo(100,120);
  s3Canvas.closePath();
  s3Canvas.stroke();

  s3Canvas.beginPath();
  s3Canvas.moveTo(50,250);
  s3Canvas.lineTo(60,20);
  s3Canvas.lineTo(140,150);
  s3Canvas.closePath();
  s3Canvas.fill();
}
	
sample4 s4Canvas
ctx.arc(X, Y, R, F1, F2)
曲線を描画します。
Xには中心点のX座標、Yには中心点のY座標、Rには描画する円の半径を指定します。

//左から150上から75の位置に、半径60の半円を反時計回り(左回り)で描く
element.arc(150,75,60,Math.PI*1,Math.PI*2,true);
sample5 s5Canvas
//一筆書きで星形のパスを描く
context.beginPath();
context.moveTo(90,60);
context.lineTo(210,60);
context.lineTo(110,130);
context.lineTo(150,20);
context.lineTo(190,130);
context.closePath();
    
element.fillText("文字列", 10, 180);
element.strokeText("文字列", 10, 100);