淺談使用canvas繪制多邊形


本文主要使用坐標軸的使用來繪制多邊形,點位則都是在y軸上尋找,這種方法能夠更好的理解圖形與修改。

//id為html里canvas標簽的屬性id;
//x,y為坐標軸的起始位置,因為canvas默認坐標軸在左上角
//color為填充圖形顏色
//...side為邊,如果有5個參數則繪制出來的為五邊形,6個就是六邊形
var draw = function(id, x, y, color, ...side){
    var c = document.getElementById(id);
    var ctx = c.getContext("2d");
    //移動起始坐標軸
    ctx.translate(x,y);
    ctx.fillStyle = color;
    //坐標軸旋轉的角度
    var angle = 360/(side.length);
    ctx.beginPath();
    //第一個點位
    ctx.moveTo(0,-side[0])
    for(let i=1; i<side.length; i++){
        //旋轉坐標軸
        ctx.rotate(angle*Math.PI/180);
        ctx.lineTo(0,-side[i]);
    }
    //填充
    ctx.fill();
    ctx.closePath();
}
draw('mycanvas',50,50,'#F0F0F0',50,50,50,50,50,50);
draw('mycanvas',0,0,'#E0E0E0',25,25,25,25,25,25);
draw('mycanvas',0,0,'#FF9797',25,25,20,20,40,25);

這張圖片是代碼執行后的結果


免責聲明!

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



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