JavaScriptを使用したシンプルなお絵描きプログラムの作り方


  1. HTML Canvasを使用する方法: HTMLのCanvas要素を使用してお絵描きプログラムを作成することができます。Canvasは、2Dグラフィックスを描画するためのAPIを提供しています。以下は、基本的なHTMLとJavaScriptのコード例です。
<canvas id="myCanvas" width="500" height="500"></canvas>
const canvas = document.getElementById('myCanvas');
const context = canvas.getContext('2d');
let isDrawing = false;
let lastX = 0;
let lastY = 0;
canvas.addEventListener('mousedown', (e) => {
  isDrawing = true;
  [lastX, lastY] = [e.offsetX, e.offsetY];
});
canvas.addEventListener('mousemove', draw);
canvas.addEventListener('mouseup', () => isDrawing = false);
canvas.addEventListener('mouseout', () => isDrawing = false);
function draw(e) {
  if (!isDrawing) return;
  context.beginPath();
  context.moveTo(lastX, lastY);
  context.lineTo(e.offsetX, e.offsetY);
  context.stroke();
  [lastX, lastY] = [e.offsetX, e.offsetY];
}
  1. JavaScriptライブラリを使用する方法: お絵描きプログラムの作成には、JavaScriptのライブラリを使用することもできます。例えば、p5.jsやFabric.jsなどがあります。以下は、p5.jsを使用したコード例です。
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.js"></script>
<script>
function setup() {
  createCanvas(500, 500);
}
function draw() {
  if (mouseIsPressed) {
    line(pmouseX, pmouseY, mouseX, mouseY);
  }
}
</script>
  1. SVGを使用する方法: SVG(Scalable Vector Graphics)を使用してお絵描きプログラムを作成することもできます。SVGはXMLベースの画像形式であり、JavaScriptと組み合わせて描画することができます。以下は、SVGを使用したコード例です。
<svg id="drawingArea" width="500" height="500">
  <rect width="100%" height="100%" fill="white" />
</svg>
const drawingArea = document.getElementById('drawingArea');
let isDrawing = false;
let lastX = 0;
let lastY = 0;
drawingArea.addEventListener('mousedown', (e) => {
  isDrawing = true;
  [lastX, lastY] = [e.offsetX, e.offsetY];
});
drawingArea.addEventListener('mousemove', draw);
drawingArea.addEventListener('mouseup', () => isDrawing = false);
drawingArea.addEventListener('mouseout', () => isDrawing = false);
function draw(e) {
  if (!isDrawing) return;
  const line = document.createElementNS('http://www.w3.org/2000/svg', 'line');
  line.setAttribute('x1', lastX);
  line.setAttribute('y1', lastY);
  line.setAttribute('x2', e.offsetX);
  line.setAttribute('y2', e.offsetY);
  line.setAttribute('stroke', 'black');
  drawingArea.appendChild(line);
  [lastX, lastY] = [e.offsetX, e.offsetY];
}

これらはお絵描きプログラムの作成方法の一部です。他にもさまざまなアプローチやライブラリがありますが、これらの例は初心者にとっては理解しやすく、基本的な機能を備えています。自分のニーズやスキルに合わせて適した方法を選択してください。お絵描きプログラムの作成は、JavaScriptの基本的な知識とDOM操作に関する理解が必要です。また、イベントリスナーの使用方法や描画コマンドの理解も重要です。以上のコード例を参考にしながら、自分なりのお絵描きプログラムを作成してみてください。楽しんでコーディングを進めてください!