canvas教程

HTML5 Canvas drawing (二)(4)

字号+ 作者:H5之家 来源:H5之家 2015-11-20 14:28 我要评论( )

实例: function drawScreen() { context.fillStyle = blue; context.fillRect(210,210,50,50); context.setTransform(1,0,0,1,0,0); var angleInRadians = 45 * Math.PI / 180; var x = 0; var y = 0; var width =

实例:


function drawScreen() {
context.fillStyle = "blue";
context.fillRect(210,210,50,50);
context.setTransform(1,0,0,1,0,0);
var angleInRadians = 45 * Math.PI / 180;
var x = 0;
var y = 0;
var width = 200;
var height = 200;
context.translate(x+.5*width, y+.5*height);//平移
context.rotate(angleInRadians);
context.fillStyle = "red";
context.fillRect(-.5*width,-.5*height , width, height);
}

效果图:


context.scale()实现图形的缩放,

此方法有两个参数: 一个是对X轴方向的缩放,一个是对Y轴方向的缩放,正常的图形参数默认都为1;

例如,我们要对图形放大两倍,则使用context.scale(2,2);


以(25,25)为顶点,长宽为50的正方形,放大2倍
function drawScreen() {
context.fillStyle = "blue";
context.fillRect(0, 0, 50, 50);
context.fillRect(150, 50, 50, 50);
context.fillRect(50, 150, 50, 50);        
context.setTransform(1, 0, 0, 1, 0, 0);
context.scale(2, 2);            
context.fillStyle = "red";
context.fillRect(25, 25, 50, 50);
}

效果图:


scale与ratation也存在相似问题,就是原点的问题;

如果我们在变换前不进行原点的平移的话,scale功能默认的原点也是canvas的原点;

相当于对整个画布进行scale 默认是延x轴正向(left),y轴正向进行缩放(down);

如果想图形依然在原来的位置,从图形的中心位置进行scale,就需要先进行原点的平移context.translate();

以(25,25)为顶点,长宽为50的正方形,为其中心为原点,放大二倍 function drawScreen() {
               
context.setTransform(1, 0, 0, 1, 0, 0);
var x = 25;
var y = 25;
var width = 50;
var height = 50;               
context.translate(x + .5 * width, y + .5 * height);               
context.scale(2, 2);               
context.fillStyle = "red";               
context.fillRect(-.5 * width, -.5 * height, width, height);
}

 

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

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

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

    2017-05-02 17:42

  • 打印html5中Canvas的方法

    打印html5中Canvas的方法

    2017-05-01 15:03

  • HTML5+Canvas调用手机拍照功能实现图片上传(下)

    HTML5+Canvas调用手机拍照功能实现图片上传(下)

    2017-04-30 17:00

  • HTML5新特性详解(三)

    HTML5新特性详解(三)

    2017-04-30 16:03

网友点评