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>


阅读更多
文章标签: canvas 旋转 rotate
个人分类: Canvas
上一篇Canvas 缩放(scale())
下一篇Canvas 旋转动画(rotate())
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭