HTML5学习第19篇——旋转与缩放

1、旋转

  • 方法

rotate() 方法旋转当前的绘图。

  • JavaScript 语法:

context.rotate(angle);

  • 参数值
参数描述
angle

旋转角度,以弧度计。

如需将角度转换为弧度,请使用 degrees*Math.PI/180 公式进行计算。

举例:如需旋转 5 度,可规定下面的公式:5*Math.PI/180。

  • 示例
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>canvas 旋转rotate</title>
	<style type="text/css">
		canvas{
			border: 1px solid black;
		}
	</style>
</head>
<body>
	<canvas width="800" height="600"></canvas>
	<script type="text/javascript">
		var c = document.querySelector('canvas');
		var ctx = c.getContext("2d");

		/*旋转是以坐标系的原点(0,0)为圆心进行的顺时针旋转。所以,
        在使用rotate()之前,通常需要配合使用translate()平移坐标系,确定旋转的圆心。
        即,旋转变换通常搭配平移变换使用的。*/

		/*最后一点需要注意的是,Canvas是基于状态的绘制,所以每次旋转都是接着上次旋转的基础上
        继续旋转,所以在使用图形变换的时候必须搭配save()与restore()方法,一方面重置旋转角度,
        另一方面重置坐标系原点。*/
		ctx.save();
		ctx.translate(100,100);
		ctx.fillRect(0,0,100,100);
		

		ctx.rotate(Math.PI/9);
		ctx.fillStyle = "blue";
		ctx.fillRect(0,0,100,100);
		ctx.restore();
	</script>	
</body>
</html>

效果:

 

2、缩放

  • 定义和用法

scale() 方法缩放当前绘图,更大或更小。

注释:如果您对绘图进行缩放,所有之后的绘图也会被缩放。定位也会被缩放。如果您 scale(2,2),那么绘图将定位于距离画布左上角两倍远的位置。

  • JavaScript 语法:
context.scale(scalewidth,scaleheight);
  • 参数值
参数描述
scalewidth缩放当前绘图的宽度 (1=100%, 0.5=50%, 2=200%, 依次类推)
scaleheight缩放当前绘图的高度 (1=100%, 0.5=50%, 2=200%, etc.)
  • 示例
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>canvas 缩放scale</title>
	<style type="text/css">
		canvas{
			border: 1px solid black;
		}
	</style>
</head>
<body>
	<canvas width="600" height="400"></canvas>
</body>
<script type="text/javascript">
	var c = document.querySelector('canvas');
	var ctx = c.getContext("2d");

	ctx.strokeRect(5,5,20,10);
	ctx.scale(2,2);
	ctx.strokeRect(5,5,20,10);
	ctx.scale(2,2);
	ctx.strokeRect(5,5,20,10);
	ctx.scale(2,2);
	ctx.strokeRect(5,5,20,10);

	//ctx.stroke();
</script>
</html>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值