canvas实战之一(画图,矩阵转换,定时)

本文介绍如何使用JavaScript和HTML5 Canvas API创建一个可以旋转的多彩Logo。通过平移、绘制圆形及旋转变换实现动态效果,并借助定时器使Logo持续旋转。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

利用学到的东东做点东西


首先画三个圆

circlecircle

function drawLogo(){   //画个logo
            ctx.translate(100,60);   //将画布中心转移到(100,60)处
            
            ctx.beginPath();
            ctx.fillStyle="#ff0000";
            ctx.arc(-25,-20,25,0,2*Math.PI,false);
            ctx.fill();
            ctx.beginPath();
            ctx.fillStyle="#00ff00";
            ctx.arc(25,-20,25,0,2*Math.PI,false);
            ctx.fill();
            ctx.beginPath();
            ctx.fillStyle="#0000ff";
            ctx.arc(0,25,25,0,2*Math.PI,false);
            ctx.fill();


        }


然后让他转动起来

rotate

rotate

结果就变成一坨。。。不是,变成一个无敌风火轮了。


很显然,转动的话,可以让它绕中心旋转,这里可以用简单的rotate,当然也可以用矩阵转换

function transform(){
            getCtx();  //获取context
            drawLogo();

             //开始转动
            var sina = Math.sin(30*Math.PI/180);
            var cosa = Math.cos(30*Math.PI/180);
            ctx.transform(cosa,sina,-sina,cosa,0,0);
            ctx.fill();
            // ctx.rotate(30*Math.PI/180);
             ctx.translate(-100,-60);   //将中心还原回去,不然会奇怪

        }

接下来就是定时调用了

<!-- 我的画布 -->
        <script type="text/javascript">
            setInterval(transform,1000);
            // setTimeout(transform,1000);
        </script>


就这样粗来啦!!!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值