canvas教程

HTML5教程:Canvas标签绘制坐标变换图形

字号+ 作者:H5之家 来源:H5之家 2015-09-29 19:05 我要评论( )

网页制作Webjx文章简介:HTML5每日一练之Canvas标签的应用-绘制坐标变换图形. 绘制图形的时候,我们可能经常会想到旋转图形,或者对图形使用变形处理,使用Canva

网页制作Webjx文章简介:HTML5每日一练之Canvas标签的应用-绘制坐标变换图形.

 绘制图形的时候,我们可能经常会想到旋转图形,或者对图形使用变形处理,使用Canvas API的坐标轴变换处理功能,就能实现这种效果。

在计算机上绘制图形的时候,是以坐标点为基准来进行绘制的,默认情况下Canvas画布的最左上角对应于坐标轴的原点(0, 0)。前面我们所讲的所有利用Canvas API绘制出来的图形都是以画布最左上交为坐标轴圆点,并以像素为单位来进行绘制的。

如果对这个坐标轴进行改变,那么就可以实现图形的变换处理了。对坐标的变换处理有以下三种方式:

平移
使用图形上下文对象的translate方法移动坐标轴原点,该方法定义如下:
cantext.translate(x, y);

x:表示横坐标,也就是将坐标轴x从原点向【左】移动多少个单位,默认以像素为单位
y:表示纵坐标,也就是将坐标轴y从原点向【下】移动多少个单位,默认以像素为单位

扩大
使用图形上下文对象的scale方法将图形放大,该方法的定义如下所示:
cantext.scale(x, y);

x:表示横坐标,也就是【水平方向】将图形放大的倍数
y:表示纵坐标,也就是【垂直方向】将图形放大的倍数
注:将图形缩小的时候,将这两个参数设置为0-1之间的小数就可以了,比如,0.5表示将图形缩小一半。

旋转
使用图形上下文对象的rotate方法将图形进行旋转,该方法的定义如下所示:
cantext.rotate(angle);

angle:是指旋转的角度,旋转的中心点是坐标轴的原点。旋转方向为顺时针进行,要想逆方旋转,只需要设置为负数即可。

下面的案例,就是使用这三种坐标变换方式共同实现的下图效果:

<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>HTML5每日一练之Canvas标签的应用-绘制坐标变换图形</title> <script type="text/javascript"> window.onload = function() { var canvas = document.getElementById("W3Cfuns_canvas"); var context = canvas.getContext("2d"); context.fillStyle = "#d4d4d4"; context.fillRect(0, 0, 400, 300); //绘制图形 context.translate(200, 25); context.fillStyle = "rgba(0, 0, 255, 0.25)"; for(var i = 0; i < 50; i++) { context.translate(25, 25); context.scale(0.95, 0.95); context.rotate(Math.PI / 10); context.fillRect(0, 0, 100, 50); } } </script> </head>
<body> <canvas id="W3Cfuns_canvas" width="600" height="400"></canvas> </body> </html>

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • html5canvas核心技术图形、动画与游戏开发源码

    html5canvas核心技术图形、动画与游戏开发源码

    2017-05-02 17:42

  • 小程序canvas绘制K线,从0开始的日记(一)

    小程序canvas绘制K线,从0开始的日记(一)

    2017-04-30 12:02

  • 利用 HTML5 的 CANVAS 绘制手机应用图表

    利用 HTML5 的 CANVAS 绘制手机应用图表

    2017-04-30 09:00

  • Canvas 绘制时钟

    Canvas 绘制时钟

    2017-04-29 12:04

网友点评