转换方法
scale(scalewidth,scaleheight)                缩放当前绘图至更大或更小
scalewidth         缩放当前绘图的宽度 (1=100%, 0.5=50%, 2=200%, 依次类推)
scaleheight         缩放当前绘图的高度 (1=100%, 0.5=50%, 2=200%, etc.)

rotate(angle)                旋转当前绘图
angle         旋转角度,以弧度计。
                如需将角度转换为弧度,请使用 degrees*Math.PI/180 公式进行计算。
                举例:如需旋转 5 度,可规定下面的公式:5*Math.PI/180。

translate(x,y)                重新映射画布上的 (0,0) 位置
x         添加到水平坐标(x)上的值
y         添加到垂直坐标(y)上的值


transform(a,b,c,d,e,f)        替换绘图的当前转换矩阵

a         水平缩放绘图
b         水平倾斜绘图
c         垂直倾斜绘图
d         垂直缩放绘图
e         水平移动绘图
f         垂直移动绘图


setTransform(a,b,c,d,e,f)        将当前转换重置为单位矩阵。然后运行 transform()

a         水平旋转绘图
b         水平倾斜绘图
c         垂直倾斜绘图
d         垂直缩放绘图
e         水平移动绘图
f         垂直移动绘图

    <canvas id="f" width="500" height="450" style="border:1px solid #000"></canvas>
<script type="text/javascript">
var a=document.getElementById("f");
var ctx=a.getContext("2d");
ctx.strokeRect(20,20,30,30);
ctx.scale(2,2); //缩放当前绘图至更大或更小
ctx.strokeRect(20,20,30,30); ctx.fillRect(120,20,30,20);
ctx.translate(30,30); //重新映射画布上的 (0,0) 位置
ctx.fillRect(120,20,30,20); //缩放当前绘图至更大或更小
ctx.rotate(25*Math.PI/180);
ctx.fillRect(50,50,100,10); ctx.fillStyle="green";
ctx.fillRect(20,50,10,20);
ctx.transform(2,0.5,-0.5,2,50,0);//替换绘图的当前转换矩阵
ctx.fillStyle="red";
ctx.fillRect(20,50,10,20); ctx.fillStyle="yellow";
ctx.fillRect(0,0,50,20) ctx.setTransform(1,0.5,-0.5,1,30,10);//将当前转换重置为单位矩阵。然后运行 transform()
ctx.fillStyle="red";
ctx.fillRect(0,0,50,20); ctx.setTransform(1,0.5,-0.5,1,30,10);
ctx.fillStyle="blue";
ctx.fillRect(0,0,50,20);
</script>

HTML5 canvas中的转换方法的更多相关文章

  1. HTML5 Canvas中实现绘制一个像素宽的细线

    正统的HTML5 Canvas中如下代码 ctx.lineWidth = 1; ctx.beginPath(); ctx.moveTo(10, 100); ctx.lineTo(300,100); c ...

  2. html5 canvas中CanvasGradient对象用法

    html5 中canvas提供了强大的渲染样式,可以实现一些比较复杂的样式设置,今天学习了CanvasGradient对象可以实现一个颜色的渐变 CanvasGradient对象可以实现两种不同形式的 ...

  3. HTML5 canvas中的路径方法

    路径方法 fill()                                填充当前绘图(路径) stroke()                        绘制已定义的路径 begin ...

  4. HTML5 canvas 中的线条样式

    线条样式属性 lineCap        设置或返回线条的结束端点样式 butt         默认.向线条的每个末端添加平直的边缘. round         向线条的每个末端添加圆形线帽. ...

  5. HTML5 Canvas 中的颜色、样式和阴影的属性和方法

    颜色.样式和阴影的属性与方法 fillStyle                设置或返回用于填充绘画的颜色.渐变或模式 strokeStyle         设置或返回用于笔触的颜色.渐变或模式 ...

  6. HTML5 Canvas中9宫格的坑

    近期小鸟情人游戏上了手机qq空间,一个3岁的游戏来了她的第二春.为了能有更好的表现,我们对其进行了一次改版. 改版当中一项就是对原来的弹出框样式进行改进.将大块木板材质改成纯色(边框为圆角金属材质)样 ...

  7. HTML5 Canvas中绘制椭圆的几种方法

    1.canvas自带的绘制椭圆的方法 ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise)是后来 ...

  8. Html5 Canvas Text

    html5 canvas中支持对text文本进行渲染;直接的理解就是把text绘制在画布上,并像图形一样处理它(可以加shadow.gradient.pattern.color fill等等):既然它 ...

  9. HTML5 Canvas渐进填充与透明

    详细解释HTML5 Canvas中渐进填充的参数设置与使用,Canvas中透明度的设置与使 用,结合渐进填充与透明度支持,实现图像的Mask效果. 一:渐进填充(Gradient Fill) Canv ...

随机推荐

  1. MVC4 教程

    http://blog.csdn.net/huangjihua0402/article/details/8507055 http://www.cnblogs.com/lc-chenlong/p/324 ...

  2. library cache lock

    SESSION 34 执行存储过程: SESSION 43 编译存储过程: SESSION 25 删除存储过程: 1.查询查看library cache lock等待事件的相关会话 SQL> s ...

  3. 无向图求割点 UVA 315 Network

    输入数据处理正确其余的就是套强联通的模板了 #include <iostream> #include <cstdlib> #include <cstdio> #in ...

  4. TRAFFIC LIGHTS POJ 1158

    题目大意: 在Dingilville 城市安排是一种不同寻常的方式,每个交叉路口有一条道路连接,一条道路最多连接两个不同的交叉路口.每个交叉路口不能连接他自己.道路旅行一端到另一端的时间是相同的,任何 ...

  5. HelloSilverlight

    一:输入姓名并选中一个日期,将在下面显示 二:XAML代码 <UserControl x:Class="HelloSilverlight.MainPage" xmlns=&q ...

  6. freemarker基本知识总结

    1.取出内容 ${} 例如,${document.fileName} 2. <ul> <#list cms.documents("channel=XXXX") a ...

  7. [Design Pattern] Adapter Pattern 简单案例

    Adapter Pattern, 即适配器模式,用于连接两个不兼容的接口,属于结构类的设计模式. 或者叫做,转换器模式. 下面是一个转换器模式简单案例. 假设已有 AudioPlayer 专门播放 m ...

  8. HDU 4604 Deque 最长子序列

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4604 Deque Time Limit: 4000/2000 MS (Java/Others)     ...

  9. 【Python排序搜索基本算法】之Dijkstra算法

    Dijkstra算法和前一篇的Prim算法非常像,区别就在于Dijkstra算法向最短路径树(SPT)中添加顶点的时候,是按照ta与源点的距离顺序进行的.OSPF动态路由协议就是用的Dijkstra算 ...

  10. ajax提交数据问题

    加入traditional:true属性 traditional 类型:Boolean 如果你想要用传统的方式来序列化数据,那么就设置为 true.请参考工具分类下面的 jQuery.param 方法 ...