小强的HTML5移动开发之路(6)——Canvas图形绘制基础

在前面提到Canvas是HTML5中一个重要特点,canvas功能非常强大,用photoshop可以实现的效果canvas也同样可以实现,下面我们用canvas实现基本图形的绘制。

一、Canvas标签的使用

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
	</head>
	<body>
		<canvas id="1" width="200" height="200" style="border:1px solid red"></canvas>
	</body>
</html>


可以看到Canvas就像一块画布,我们可以在这个画布上面绘制我们需要的图形。canvas 元素本身是没有绘图能力的。所有的绘制工作必须在 JavaScript 内部完成。

二、画矩形

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
	</head>
	<body>
		<canvas id="1" width="500" height="500" style="border:1px solid red" οnmοusemοve="mousexy(envent)"></canvas>
	</body>
	<script type="text/javascript">
		var c=document.getElementById('1');
		var p=c.getContext("2d");
		//getContext("2d") 对象是内建的 HTML5 对象,拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。
		p.fillStyle="#FF0000";
		p.fillRect(0, 0, 300, 300);
		p.fillStyle="rgba(0,0,255,0.5)";
		p.fillRect(200,200,500,500);
	</script>
</html>


三、画线条

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
 </head>
 <body>
	<canvas id="1" width="200" height="200" style="border:1px solid red" οnmοusemοve="mousexy(envent)"></canvas>
 </body>
 <script type="text/javascript">
	var c=document.getElementById('1');
	var p=c.getContext("2d");

	p.moveTo(10,10);
	p.lineTo(150,50);
	p.lineTo(10,50);
	p.stroke();
 </script>
</html>


四、画圆形

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
 </head>
 <body>
  <canvas id="1" width="200" height="200" style="border:1px solid red" οnmοusemοve="mousexy(envent)"></canvas>
 </body>
  <script type="text/javascript">
	var c=document.getElementById('1');
	var p=c.getContext("2d");

	p.fillStyle="#FF0000";
	p.beginPath();
	p.arc(80,80,15,0,Math.PI*2,true);
	p.closePath();
	p.fill();
 </script>
</html>


五、渐变

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
 </head>
 <body>
  <canvas id="1" width="200" height="200" style="border:1px solid red" οnmοusemοve="mousexy(envent)"></canvas>
 </body>
  <script type="text/javascript">
	var c=document.getElementById("1");
	var cxt=c.getContext("2d");
	var grd=cxt.createLinearGradient(0,0,175,50);
	grd.addColorStop(0,"#FF0000");
	grd.addColorStop(1,"#00FF00");
	cxt.fillStyle=grd;
	cxt.fillRect(0,0,175,50);
 </script>
</html>


六、绘制图片

<!DOCTYPE HTML>
<html>
<body>

<canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">
Your browser does not support the canvas element.
</canvas>

<script type="text/javascript">

var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
var img=new Image()
img.src="/i/eg_flower.png"
cxt.drawImage(img,0,0);

</script>

</body>
</html>


七、多边形

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
 </head>
 <body>
  <canvas id="1" width="200" height="200" style="border:1px solid red" οnmοusemοve="mousexy(envent)"></canvas>
 </body>
  <script type="text/javascript">
	var c=document.getElementById('1');
	var p=c.getContext("2d");

	p.fillStyle="#FF0000";
	p.moveTo(10,10);
	p.lineTo(150,50);
	p.lineTo(10,50);
	p.lineTo(20,30);
	p.fill();
 </script>
</html>





  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
CanvasHTML5新增的一个用于绘制图形的标签,可以通过JavaScript来控制Canvas进行图形绘制。在进行Canvas绘制时,可以通过调整画布的位置、大小和旋转角度等属性,来控制绘制出来的图形的位置和形态。 下面我们就来介绍一下Canvas画布的移动、缩放和旋转: 1. 画布移动 画布移动可以通过Canvas提供的translate方法来实现。translate方法接收两个参数,分别表示x轴和y轴方向上的偏移量。偏移量为正值表示向右或向下移动,为负值表示向左或向上移动。 例如,我们可以通过下面的代码将画布向右移动50个像素,向下移动100个像素: ``` context.translate(50, 100); ``` 2. 画布缩放 画布缩放可以通过Canvas提供的scale方法来实现。scale方法接收两个参数,分别表示x轴和y轴方向上的缩放比例。缩放比例为大于1的值表示放大,小于1的值表示缩小。 例如,我们可以通过下面的代码将画布在x轴和y轴方向上都放大2倍: ``` context.scale(2, 2); ``` 3. 画布旋转 画布旋转可以通过Canvas提供的rotate方法来实现。rotate方法接收一个参数,表示旋转的角度,单位为弧度。 例如,我们可以通过下面的代码将画布旋转45度: ``` context.rotate(Math.PI / 4); ``` 需要注意的是,Canvas绘图的坐标系原点默认在画布的左上角,而移动、缩放和旋转操作都是相对于原点进行的。因此,在进行这些操作时,需要先将画布的原点移动到需要的位置,再进行操作。例如,如果需要将画布向右移动50个像素,需要先将原点移动到(50,0)的位置,再进行移动操作: ``` context.translate(50, 0); ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值