キャンバスに三角形を描画しよう
前回はcanvasに直線を描くプログラムを作りました。
今回はcanvasに三角形を描くプログラムを作ってみましょう。
三角形は直線を使って表現しますので、前回のプログラムを修正して作ります。
canvasに三角形を描く手順は、以下のようになります。
三角形を描く手順
- beginPath()メソッドを使って、パスを作成する
- moveTo()メソッドを使って、描画する線の開始座標を指定する
- lineTo()メソッドを使って、三角形の頂点の座標を二つ指定する
- closePath()メソッドを使って、開始座標と最後の座標を接続する
- fill()メソッドかstroke()メソッドを使って、三角形を表示する
fill()メソッドを使うと三角形を塗りつぶすことができ、stroke()メソッドを使うと三角形を線で表示することができます。
キャンバスに三角形を描くプログラム
キャンバスに三角形を描くプログラムは、以下のようになります。
このプログラムでは、traiangle()という関数を作って三角形の描画処理をまとめています。
8番目の引数は"fill"にすると三角形を塗りつぶし、"stroke"にすると三角形を線で表示します。
また、9番目の引数で三角形の色を、10番目の引数で線の太さを指定できるようにしています。
なお、三角形を塗りつぶす場合は、10番目の引数は不要です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Traiangle</title> </head> <body onload="strDraw();"> <canvas id="pos" width="400" height="400"></canvas> <script type="text/javascript"> // 三角形表示関数 function traiangle(fig,x1,y1,x2,y2,x3,y3,mode,color,thick) { fig.beginPath(); // 新しいパスを作成 fig.moveTo(x1,y1); // 三角形の開始座標 fig.lineTo(x2,y2); // 三角形の頂点座標 fig.lineTo(x3,y3); // 三角形の頂点座標 fig.closePath(); // パスの終了 // 塗りつぶし if (mode == "fill") { fig.fillStyle = color; // 塗りつぶす色 fig.fill(); // 三角形を描画 // 線描画 } else if (mode == "stroke") { fig.lineWidth = thick; // 線の太さ fig.strokeStyle = color; // 線の色 fig.stroke(); // 輪郭を描画 } } // 開始関数 function strDraw() { // ドキュメントオブジェクト作成 var id1 = document.getElementById('pos'); // 2Dオブジェクト作成 var fig = id1.getContext('2d'); // 三角形描画 traiangle(fig,100, 15,185,185, 15,185,"fill", "black"); traiangle(fig,300, 15,385,185,215,185,"fill", "red"); traiangle(fig,100,215,185,385, 15,385,"stroke","green",5); traiangle(fig,300,215,385,385,215,385,"stroke","blue" ,10); } </script> </body> </html> |
プログラムを実行すると、WEBブラウザ上に4つの三角形が表示されます。
canvasに図形を描く詳しいやり方は、以下の「MDN Web Docs」を参照してください。