1. 程式人生 > >canvas實戰之一(畫圖,矩陣轉換,定時)

canvas實戰之一(畫圖,矩陣轉換,定時)

利用學到的東東做點東西

首先畫三個圓

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>
就這樣粗來啦!!!