canvas画布js代码实现大风车的动画

17 篇文章 0 订阅

通过js代码在canvas画布中实现大风车的动画

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>大风车</title>
    <style type="text/css">
        #canvas{
            border: 1px solid black;
        }
    </style>
</head>
<body>
    <canvas id="canvas" width="400" height="400">
        <!--//浏览器不支持canvas时,显示p标签中的内容-->
        <p>你的浏览器不支持canvas</p>
    </canvas>

    <script type="text/javascript">
        //初始化颜色
        let colors=["#FF0000","#FF7D00","#FFFF00","#00FF00","#0000FF","#00FFFF","#FF00FF"];
        let canvas = document.getElementById("canvas");//获取canvas样式(获取画布)
        let context = canvas.getContext("2d");//获取绘图上下文

        //平移坐标原点
        context.translate(200,200);
        //绘制动画-旋转大风车
        //1.绘制大风车
        drawWindmill();
        //2.设置动画方法

        //3.调用setInterval
        setInterval(animate,20);
        //动画方法
        function animate() {
            //清除画布
            context.clearRect(-200,-200,400,400);
            //再绘制大风车
            //每调用一次就旋转一度
            context.rotate(1*Math.PI/180);
            drawWindmill();

        }
        //绘制大风车
        function drawWindmill() {
            for(let i=0;i<6;i++){
                //画扇叶
                context.fillStyle=colors[i];
                context.beginPath();
                context.arc(80,0,80,0,Math.PI,false)
                context.fill();

                //将坐标系旋转60度
                context.rotate(60*Math.PI/180);
            }

            //画中心圆
            context.fillStyle="white";
            context.beginPath();
            context.arc(0,0,40,0,Math.PI*2,true);
            context.fill();

        }
    </script>
</body>
</html>
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值