このようなブロックをCanvas内で描写します。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>square</title> <script> var canvas; var ctx; //四角の一辺の長さ var SIDE = 20; //ブロックの描写用に配列を用意する var OBJECT = [ [1, 1, 0, 0], [0, 1, 1, 0] ]; window.onload = function(){ canvas = document.querySelector("#canvas"); ctx = canvas.getContext("2d"); draw(); }; //四角を描く function draw(){ ctx.strokeStyle = "blue"; for ( var y = 0; y < 2; y++) { for ( var x = 0; x < 4; x++) { if ( OBJECT[y][x] ) { ctx.strokeRect(x * SIDE, y * SIDE, SIDE, SIDE); } } } } </script> </head> <body> <canvas id="canvas" width="400" height="300"></canvas> </body> </html>
二回のfor文で、
事前に用意した配列の画像の順にアクセスし、if ( OBJECT[y][x] )でアクセスした数字が1の場合はxとyの値を使って任意の箇所に四角を描写するという処理を行います。開始場所をx * SIDEとy * SIDEで指定することで、
配列の数字に対応して図形を描写することが出来ます。
var OBJECT = [ [1, 1, 1, 0], [0, 0, 1, 0] ];
このような配列にすると
1の並び方に従って、上の画像のような描写になります。
(灰色のグリッドは表示されません)
0 件のコメント:
コメントを投稿