详解通过HTML5 Canvas实现图片的平移及旋转变化的方法

2020-04-21 23:03:40易采站长站整理

    </style>   
</head>   
<body>   
<div id="canvas-warp">   
    <canvas id="canvas">   
        你的浏览器居然不支持Canvas?!赶快换一个吧!!   
    </canvas>   
</div>   
  
<script>   
    window.onload = function(){   
        var canvas = document.getElementById("canvas");   
        canvas.width = 800;   
        canvas.height = 600;   
        var context = canvas.getContext("2d");   
        context.fillStyle = "#FFF";   
        context.fillRect(0,0,800,600);   
  
        context.fillStyle = "#00AAAA";   
        context.fillRect(100,100,200,100);   
  
        context.save();   
        context.fillStyle = "red";   
        context.translate(100,100);   
        context.fillRect(100,100,200,100);   
        context.restore();   
  
        context.save();   
        context.fillStyle = "green";   
        context.translate(200,200);   
        context.fillRect(100,100,200,100);   
        context.restore();   
  
    };   
</script>   
</body>   
</html>  

运行结果:
2016322113053867.jpg (850×500)

因此,在使用图形变换的时候,要记得结合使用状态保存。

旋转变换rotate()

同画圆弧一样,这里的rotate(deg)传入的参数是弧度,不是角度。同时需要注意的是,这个的旋转是以坐标系的原点(0,0)为圆心进行的顺时针旋转。所以,在使用rotate()之前,通常需要配合使用translate()平移坐标系,确定旋转的圆心。即,旋转变换通常搭配平移变换使用的。