1. 程式人生 > >Canvas 繪製一個指定的旋轉圖形(rotate())

Canvas 繪製一個指定的旋轉圖形(rotate())

demo.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        canvas {
            border:1px solid red;
        }
    </style>
</head>
<body>
    <canvas id="cvs" width="500" height="500"></canvas>
    <script>
        var cvs = document.getElementById('cvs');
        var ctx = cvs.getContext('2d');

        // 在100,100點繪製一個寬50,高50的矩形(旋轉45度)。

        // 這樣會有問題,
        // 因為旋轉的中心是座標軸的0,0點,
        // 如果能夠讓旋轉的中心是圖形的中心,
        // 那麼就可以完成旋轉圖形的繪製。
        /* ctx.rotate( Math.PI / 180 * 45 );
        ctx.fillRect( 100, 100, 50, 50 );*/

        /*
        * 繪製一個旋轉圖形的步驟:
        * 1、先平移座標軸到圖形的中心
        * 2、旋轉座標軸
        * 3、繪製圖形( 需要注意,平移旋轉之後,座標體系變化,不能按照之前定好的座標來繪製旋轉圖形 )
        * */

        // 正常情況下的參考矩形
        ctx.fillStyle = 'pink';
        ctx.fillRect( 100, 100, 50, 50 );

        // 平移到矩形的中心
        ctx.translate( 125, 125 );
        // 旋轉座標系
        ctx.rotate( Math.PI / 180 * 45 );
        // 繪製圖形
        ctx.fillStyle = 'blue';
        ctx.fillRect( -25, -25, 50, 50 );  //旋轉一般讓圖形中心畫在座標軸原點上。(旋轉會繞著圖形中心旋轉)
    </script>
</body>
</html>