javascript - 关于canvas的scale缩放中心的问题
本文介绍了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屋!
查看全文