canvas绘制五角星

<!DOCTYPE html>
<html>
<head>
    <title>canvas绘制五角星</title>
    <style type="text/css">
        .wrap{width: 500px;margin:0 auto;}
        #starCanvas{border: 1px solid #ccc;width: 500px;height:500px;box-sizing:border-box;}
    }
    }
    </style>
</head>
<body>
<div class="wrap">    
    <canvas id='starCanvas' width='500px' height="500px"></canvas>
</div>
<script type="text/javascript">
    drawStar(250,250,100);
    function drawStar(cx,cy,r){
        var dotArray=starDotArray(cx,cy,r);
        console.log(dotArray);
        var canvas=document.getElementById('starCanvas');
        var cx=canvas.getContext('2d');
        cx.strokeStyle='red';
        cx.lineJoin='round';
        for(var i=0;i<dotArray.length;i++){
            if(i==0){
                cx.moveTo(dotArray[i].x,dotArray[i].y);
            }else{
                cx.lineTo(dotArray[i].x,dotArray[i].y);
            }
            
        }
        cx.closePath();
        cx.stroke();
        //cx.fillStyle='yellow'
        //cx.fill();
    }
    function starDotArray(cx,cy,r){
        //圆心坐标 以及圆半径
        var dotArray=[];
        var unitDeg=Math.PI * 4 / 5;
        var rotateDeg=unitDeg/8;
        for(var i=0;i<5;i++){
            var tempDit=unitDeg*i-rotateDeg;
            var y = Math.sin(tempDit) * r + cy;
            var x = Math.cos(tempDit) * r + cx;
            dotArray.push({x:x,y:y});
        }
        return dotArray;
    }
</script>
</body>
</html>

如有疑问,望不吝赐教1609020856@qq.com

 

转载于:https://www.cnblogs.com/blackisblack/p/7009282.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值