canvas变换(移动,缩放等)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了canvas变换(移动,缩放等)相关的知识,希望对你有一定的参考价值。

代码:

技术分享
 1 /**
 2  * Created by Administrator on 2016/1/30.
 3  */
 4 function draw (id){
 5     var canvas = document.getElementById(id);
 6     var context = canvas.getContext(‘2d‘);
 7 /*    context.translate(200,120);//偏移量
 8     context.rotate(Math.PI/6);//旋转
 9     context.scale(0.6,0.4);//缩放或扩大*/
10     context.transform(1,0.5,10,1,1,0);
11     context.fillStyle = "red";
12     context.fillRect(0,0,100,100);
13 //    ArcFace(context);
14 }
15 /*
16 function ArcFace(context){
17     // 绘制脸型
18     context.beginPath();
19     context.lineWidth = 5;
20     context.strokeStyle = "red";
21     context.arc(0,0,90,0,Math.PI*2,true);
22     context.stroke();
23     //绘制五官
24     context.beginPath();
25     //左眼
26     context.moveTo(-30,-30);
27     context.lineTo(-30,-20);
28     //右眼
29     context.moveTo(30,-30);
30     context.lineTo(30,-20);
31     //嘴
32     context.moveTo(-20,30);
33     context.bezierCurveTo(-20,44,20,30,30,20);
34     //颜色设定
35     context.strokeStyle = "red";
36     context.lineWidth = 10;
37     context.lineCap = "round";
38     context.stroke();
39 }*/
View Code

移动方法为translate();

  格式:

    translate(dx,dy):

      dx:水平方向上的偏移量,dy:垂直方向上的偏移量。

  说明:添加偏移量后,会将偏移量附加给后续的所有坐标点。

     如果需要调整图像的位置,只需调整坐标的偏移量就可以了,不用再在新的位置重新绘图,很直观的实现了图像的移动。

缩放(放大)方法为scale();

  格式:

    scale(sx,sy):

      sx:水平方向上的缩放因子,

          sy:垂直方向上的缩放因子。

  说明:sx,sy为大于零的数值。当其值大于1时,为放大图像;小于1时,为缩放图像。

旋转方法为rotate();

  格式:

    rotate(angle);

      angle为角度。

  说明:angle为正值时表示顺时针旋转,负值表示逆时针旋转。旋转的中心点为坐标系统的原点。

另外还有方法transform(),其格式为transform(a,b,c,d,e,f);它是全能的。

技术分享

以上是关于canvas变换(移动,缩放等)的主要内容,如果未能解决你的问题,请参考以下文章

canvas基础之变换

canvas做动画

Android绘图之Canvas变换(6)

UnityPC端:缩放移动画面

Flutter 专题44 图解矩阵变换 Transform 类 #yyds干货盘点#

适用于 Android/IOS 的 Canvas 上的 Unity 平滑移动和缩放 UI