html5的canvas对象的translate方法和rotate方法
来源:互联网 发布:js如何创建二维数组 编辑:程序博客网 时间:2024/05/22 06:20
下午读一个HTML5的源代码的时候,遇到canvas对象的translate方法和rotate方法,发现不是很了解,花了点时间研究下,原来如此简单,虽然简单,还是记录一下吧,毕竟是自己的成果,呵呵!
1. translate(80,80)的意思就是说以x=80,y=80的这个像素点作为(0,0)坐标,以后的坐标都是相对于这个标准的。
2. rotate(90 * Math.PI / 180) 按顺时针旋转90度。
一、源代码如下:
<!DOCTYPE HTML>
<html>
<head>
<script language="javascript">
function drawBowtie(ctx, fillStyle) {
ctx.fillStyle = "rgba(200,200,200,0.3)";
ctx.fillRect(-30, -30, 60, 60);
ctx.fillStyle = fillStyle;
ctx.globalAlpha = 1.0;
ctx.beginPath();
ctx.moveTo(25, 25);
ctx.lineTo(-25, -25);
ctx.lineTo(25, -25);
ctx.lineTo(-25, 25);
ctx.closePath();
ctx.fill();
}
function dot(ctx) {
ctx.save();
ctx.fillStyle = "black";
ctx.fillRect(-2, -2, 4, 4);
ctx.restore();
}
function draw() {
var ctx = document.getElementById('myCanvas').getContext("2d");
// note that all other translates are relative to this
// one
ctx.translate(100, 100);
ctx.save();
//ctx.translate(0, 0); // unnecessary
drawBowtie(ctx, "red");
dot(ctx);
ctx.restore();
ctx.save();
ctx.translate(85, 0);
ctx.rotate(45 * Math.PI / 180);
drawBowtie(ctx, "green");
dot(ctx);
ctx.restore();
ctx.save();
ctx.translate(0, 85);
ctx.rotate(135 * Math.PI / 180);
drawBowtie(ctx, "blue");
dot(ctx);
ctx.restore();
ctx.save();
ctx.translate(85, 85);
ctx.rotate(90 * Math.PI / 180);
drawBowtie(ctx, "yellow");
dot(ctx);
ctx.restore();
}
window.onload=function(){
draw();
}
</script>
</head>
<body>
<div id="pw_body" style="width:100%;height:100%">
<canvas id="myCanvas" width="300" height="300"></canvas>
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js"></script>
</div>
</body>
</html>
二、效果图:
- html5的canvas对象的translate方法和rotate方法
- canvas的translate、scale、rotate等方法
- canvas的translate、scale、rotate等方法
- canvas的translate、scale、rotate等方法
- Android Canvas rotate()和translate()两个方法的研究
- Android Canvas rotate()和translate()两个方法的研究
- HTML5 canvas绘制arcTo、translate和rotate的画法探索
- canvas的translate、scale、rotate、clipRect等方法
- Android Canvas编程:对rotate()和translate()两个方法的研究
- Android Canvas编程:对rotate()和translate()两个方法的研究
- Android Canvas编程:对rotate()和translate()两个方法的研究
- Canvas的rotate方法
- Android Canvas中rotate()和translate()方法详解
- 关于画布canvas的rotate()和translate()的正确理解
- 对canvas的translate()方法的理解
- 对canvas的translate()方法的理解
- 对canvas的translate()方法的理解
- Android 对Canvas的translate方法总结
- dll
- 网络测量常见算法之二:虚拟位图法
- C#中的字符编码问题
- 装Win7后无需光盘恢复grub
- 经典开源软件网址大全
- html5的canvas对象的translate方法和rotate方法
- 关于产品搜索功能的准确度及搜索效率的提高
- 使用C#进行文件压缩和解压
- 卸载IntelC++后出现的VC6编译错误问题
- .NET的事务控制
- Win Key + X = Windows 移动中心
- coldfusion builder 避免启动时联网验证导致序列号失效
- 使用C#进行文件压缩和解压
- 数据库连接池的学习