1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

canvasで図形を描画するメソッドやプロパティなどのメモ

Posted at

準備

HTML
<canvas id="canvas" width=400 height=200>
  Canvas not supported.
</canvas>
JS
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext("2d");

メソッドやプロパティなど

直線を描く

JS
// 線(直線や曲線)を描き始める前の準備
// 線に関する座標の情報をPathという。
// Pathをリセットする
ctx.beginPath();

// 線を描き始める座標を指定する
ctx.moveTo(x, y);

// 直線を描き終わる座標を指定する
ctx.lineTo(x, y);

// 続けて2本目の直線を書き終わる座標を指定することもできる
// 今回は書きはじめの座標は1本目と共通
ctx.lineTo(x2, y2);

// 線の色
ctx.strokeStyle = 'orange';

// 先の太さ
ctx.lineWidth = 6;

// 上記メソッド・プロパティに基づいて線を描く
ctx.stroke();

円弧を描く

ラジアンはMath.Pi / 180 * 角度などで指定

JS
ctx.beginPath();

ctx.arc(中心x, 中心y, 半径, 描き始めのラジアン, 描き終わりのラジアン );

this.ctx.stroke();

四角形を描く

JS
// 塗りつぶす色
ctx.fillStyle = 'red';
// 四角形を描く
ctx.fillRect(四角形左上のx座標, 四角形左上のy座標, , 高さ);

その他

JS
原点を移動する
ctx.translate(x, y);

原点を中心に回転する
ctx.rotate(Math.PI / 180 * 角度);
JS
// メソッドやプロパティで設定した座標や
// 線の色・太さなどを記憶する
ctx.save();

// 記憶したものを呼び出す
ctx.restore();
JS
// <canvas>要素の幅や高さを取得する
const width = canvas.widht;
const height = canvas.height;
JS
// ブラウザが<canvas>に対応しているか
// 対応していなければreturnで終了。
// returnは関数内でしか使えないので即時関数で囲むなどする必要がある。

const canvas = document.querySelector('canvas');
if (typeof canvas.getContext === 'undefined') {
  return;
}

 

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?