javascript - 关于canvas的scale缩放中心的问题

查看:178
本文介绍了javascript - 关于canvas的scale缩放中心的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

对小正方形进行2倍的放大,他的坐标也会被移动,怎样让它以本身的中心放大呢?向下面这样

解决方案

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<canvas id="mycanvas" width="400" height="400" style="border: 1px solid #0E2D5F"></canvas>
<script>
    var canvasDom=document.getElementById("mycanvas");
    var ctx=canvasDom.getContext("2d");

    var rectWidth=100;
    var rectHeight=100;


    function drawRect(centerX,centerY,scaleX,scaleY){
        ctx.clearRect(0,0,canvasDom.width,canvasDom.height);
        ctx.save();
        ctx.translate(centerX,centerY);
        ctx.scale(scaleX*2,scaleY*2);
        ctx.fillStyle="#0E2D5F";
        ctx.fillRect(-rectWidth/2,-rectWidth/2,rectWidth,rectHeight);
        ctx.restore();

        ctx.save();
        ctx.translate(centerX,centerY);
        ctx.scale(scaleX,scaleY);
        ctx.fillStyle="#ffffff";
        ctx.fillRect(-rectWidth/2,-rectWidth/2,rectWidth,rectHeight);
        ctx.restore();
    }

    drawRect(canvasDom.width/2,canvasDom.height/2,1,1);
</script>
</body>
</html>

这篇关于javascript - 关于canvas的scale缩放中心的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆