2014年6月5日木曜日

html5のcanvasで多角形を書いてみた

html5のcanvasタグを使って3角形,4角形,5角形といった多角形を書いてみました。

一応999角形まで表示できますが、これくらいの大きさだと50角形を超える辺りで全部円にしか見えなくなりますね。

三角形

 六角形

 十二角形

 五十角形




<!DOCTYPE html>
<html>

<head>
<script language="javascript">
var radius = 150;
var center_x = 200;
var center_y = 150;

function draw_polygon(){
    var vertex = document.forms["vertex"]["quantity"].value;

 var a = 2 * Math.PI / vertex;
 var arr_x = [];
 var arr_y = [];

 for(var i= 0; i < vertex; i++){
   var rad =(i + 1) *  2 * Math.PI / vertex;
   arr_x[i] = center_x + radius * Math.cos(rad);
   arr_y[i] = center_y + radius * Math.sin(rad);

 }

 var canvas = document.getElementById("myCanvas");
 var ctx = canvas.getContext("2d");
 ctx.clearRect(0,0,canvas.width,canvas.height);
 ctx.beginPath();
 ctx.moveTo(arr_x[0],arr_y[0]);
 for(var i= 1; i < vertex; i++){
     ctx.lineTo(arr_x[i],arr_y[i]);
 }
 ctx.lineTo(arr_x[0],arr_y[0]);
 ctx.stroke();
}
</script>
</head>
<body>
<form id = "vertex" onsubmit="draw_polygon();return false;">
  Specify the Quantity (between 1 and 999): <input type="number" name="quantity" min="1" max="999" placeholder="4">
  <input type="submit">
</form>
<canvas id="myCanvas" width="600" height="300" style="border:1px solid #c3c3c3;">
Your browser does not support the HTML5 canvas tag.
</canvas>

</body>


</html>

0 件のコメント:

コメントを投稿