JavaScript+canvas 繪制多邊形


效果圖:

<body>
<canvas id="square" width="500"></canvas>
<canvas id="circle"></canvas>

<script type="text/javascript">
function polygon(c,n,x,y,r,angle,counterclockwise){
	angle = angle || 0;
	counterclockwise = counterclockwise ||false;
	c.moveTo(x+r*Math.sin(angle),		//從第一個頂點開始一條新的子路徑
				y-r*Math.cos(angle));	//使用三角法計算位置
	var delta = 2*Math.PI/n;			//兩個頂點之間的夾角
	for(var i=1 ; i < n ; i++){			//循環剩余的每個頂點
		angle += counterclockwise ? -delta:delta;	//調整角度
		c.lineTo(x+r*Math.sin(angle),	//以下個頂點為端點添加線段
			y-r*Math.cos(angle));
	}
	c.closePath(); 		//將最后一個頂點和起點連接起來
}

var convas = document.getElementById('square');
var c=convas.getContext("2d");

//開始一個新的路徑並添加一條多邊形子路徑
c.beginPath();
polygon(c,3,50,70,50);		//三角形
polygon(c,4,150,60,50,Math.PI/4);		//正方形角形
polygon(c,5,255,55,50);		//五角形
polygon(c,6,365,53,50,Math.PI/6);		//六角形
polygon(c,4,365,53,20,Math.PI/4,true);		//六邊形中的小正方形

//設置屬性來控制圖形外觀
c.fillStyle = "#ccc" ; 		//內部使用淺灰色
c.strokeStyle = "#008"; 	//深藍色外邊框
c.lineWidth =2;		 		//2個像素寬

//調用如下函數繪制所有這些多邊形(每個分別定義在自己的子路徑中)
c.fill();
c.stroke();

</script>
</body>

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM