偏移:translate ,旋转:rotate,缩放 scale,不知道什么东东:lineCap 实例

<!DOCTYPE HTML> <head> <meta charset = "utf-8"> <title>canvas</title> <style type="text/css"> #canvas{border:1px solid #eee ; display:block; background-color: #B36666; margin: 20px auto; } </style></head><body><div><canvas id = "canvas" width = "1300px" height = "800px"></canvas></div> <script type = "text/javascript" >
window.onload=function(){
var context = document.getElementById(‘canvas‘).getContext(‘2d‘)
/* translate
translate 属性:context.translate(100,100);
参数1:绘制图时的x坐标的参考点,不再是0
参数2:绘制图时的y坐标的参考点,不再是0
注意:translate会叠加
解决方案:
context.save();
画图代码........
context.restore();
*/
//不使用translate,绘画初始坐标(10,20)
context.strokeRect(10,20,100,150);
//使用 translate ; 绘画初始坐标(50,50)
context.save();//解决叠加方案:
context.translate(50,50);
context.fillStyle=‘rgba(100,100,200,0.5)‘;
context.fillRect(0,0,100,150);
context.restore();//解决叠加方案:
/*
如果:使用translate,不添加save、restore方法
那么:translate会叠加会影响往后画的图形
如果:添加save、restore方法
那么:不会影响后面的图形
绘画初始坐标(100+10,100+20)
*/
context.save();//解决叠加方案:
context.translate(100,100);
context.fillStyle=‘yellow‘;
context.fillRect(10,20,100,150);
context.restore();//解决叠加方案:

/*
如果:上面例子不添加save、restore方法
那么:translate会叠加:绘画初始坐标(100+50+50,100+100+50)
如果:上面有save、restore方法
那么:绘画初始坐标(50+50,100+50)
*/
context.save();//解决叠加方案:
context.translate(50,100);
context.fillStyle=‘rgba(200,200,200,0.4)‘;
context.fillRect(50,50,100,150);
context.restore();//解决叠加方案:

/* lineCap
lineCap 属性:见效果,中间是正常的效果,默认值,只对头尾有效
默认值:context.lineCap=‘butt‘;
圆头 :context.lineCap=‘round‘;
方头 :context.lineCap=‘square‘;
*/
context.lineWidth = 20;
context.beginPath();
context.moveTo(240,20);
context.lineTo(240,400);
context.strokeStyle="red";
context.stroke();

context.beginPath();
context.lineTo(280,20);
context.lineTo(280,400);
context.lineCap=‘round‘;
context.strokeStyle="green";
context.stroke();

context.beginPath();
context.lineTo(320,20);
context.lineTo(320,400);
context.lineCap=‘square‘;
context.strokeStyle="blue";
context.stroke();

/* rotate、scale
rotate 属性:旋转,以弧度为单位
转180度 :Math.PI
90度 :Math.PI/2
45度 :Math.PI/4

scale 属性 放大倍数 context.scale(x,y)
参数x 代表在x轴上放大的倍数
参数y 代表在y轴上放大的倍数
scale除了放大目标的大小之外,还会放大目标元素的其他属性,
例如lineWidth属性,translate属性
*/
//解决叠加方案:
context.save();
//设置起点坐标(450,100)
context.translate(450,100);
//旋转:180/4 = 45度 ,以起点坐标(450,100)为旋转点
context.rotate(Math.PI/4);
//缩放:x缩放1.5倍,y1.3倍,缩放后的高宽(150,130)
context.scale(1.5,1.3);
context.fillStyle=‘rgba(200,200,200,0.4)‘;
context.fillRect(0,0,100,100);
context.restore();//解决叠加方案:
}
</script> </body> </html>

时间: 2024-11-09 02:39:17

偏移:translate ,旋转:rotate,缩放 scale,不知道什么东东:lineCap 实例的相关文章

CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate)

CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate) 在CSS3中,可以利用transform功能来实现文字或图像的旋转.缩放.倾斜.移动这四种类型的变形处理,本文将对此做详细介绍. 一.旋转 rotate 用法:transform: rotate(45deg); 共一个参数"角度",单位deg为度的意思,正数为顺时针旋转,负数为逆时针旋转,上述代码作用是顺时针旋转45度. 二.缩放 scale 用法:transform

CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate)(转载)

在CSS3中,可以利用transform功能来实现文字或图像的旋转.缩放.倾斜.移动这四种类型的变形处理,本文将对此做详细介绍. 一.旋转 rotate 用法:transform: rotate(45deg); 共一个参数“角度”,单位deg为度的意思,正数为顺时针旋转,负数为逆时针旋转,上述代码作用是顺时针旋转45度. 二.缩放 scale 用法:transform: scale(0.5)  或者  transform: scale(0.5, 2); 参数表示缩放倍数: 一个参数时:表示水平和

iOS 2D绘图 (Quartz2D)之Transform(CTM,Translate,Rotate,scale)

前言:Quartz默认采用设备无关的user space来进行绘图,当context(画板)建立之后,默认的坐标系原点以及方向也就确认了,可以通过CTM(current transformation matrix)来修坐标系的原点.从数组图像处理的角度来说,就是对当前context state乘以一个状态矩阵.其中的矩阵运算开发者可以不了解 最初的状态和代码 #import "CustomView.h" @implementation CustomView - (void)drawRe

Canvas绘图之平移translate、旋转rotate、缩放scale

画布操作介绍 画布绘图的环境通过translate(),scale(),rotate(), setTransform()和transform()来改变,它们会对画布的变换矩阵产生影响. 函数 方法 描述 translate dx,dx 转换的量的 X 和 Y 大小 scale sx,sy 水平和垂直的缩放因子 rotate angle 旋转的量,用弧度表示.正值表示顺时针方向旋转,负值表示逆时针方向旋转. setTransform a,b,c,d,e,f 水平缩放,水平倾斜(与旋转有关),垂直倾

自定义控件三部曲之动画篇(一)——alpha、scale、translate、rotate、set的xml属性及用法

前言:这几天做客户回访,感触很大,用户只要是留反馈信息,总是一种恨铁不成钢的心态,想用你的app,却是因为你的技术问题,让他们不得不放弃,而你一个回访电话却让他们尽释前嫌,当最后把手机号留给他们以便随时沟通的时候,总会发来一条条的鼓励短信,让我不自主的开始内疚.哎,多么可爱的用户,多么无耐的现实. 相关文章: <Android自定义控件三部曲文章索引>:http://blog.csdn.net/harvic880925/article/details/50995268 一.概述 Android

Android自定义控件:动画类----alpha、scale、translate、rotate、set的xml属性及用法

一.概述 Android的animation由四种类型组成:C.scale.translate.rotate,对应android官方文档地址:<Animation Resources> 动画在XML配置文件中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动画效果 动作定义文件应该存放在res/anim文件夹下,访问时采用R.anim.XXX.xml的方式,位置如图: 二.下面我们逐个讲讲每个标签的属性

translate移动坐标,rotate实现2D自动旋转,translate和rotate实现2D旋转

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <title>translate移动坐标,rotate实现2D自动

OpenGL中旋转平移缩放等变换的顺序对模型的影响

l 前提: 0x01. 假设绘制顶点的语句为Draw Array,变换的语句(旋转.平移.缩放)为M,而 M0; M1; M2; Draw Array; 则称对Array先进行M2再进行M1.M0 0x02. 本文基于SharpGL版本的OpenGL(C#版本) l 预备知识: 0x01. gl.Rotate是按照右手系来计算的,即设旋转轴为大拇指方向,则从指跟到指尖的方希为正方向. 0x02. gl.Scale 会改变法向量的值,从而会对颜色有影响.通过gl.Enable(OpenGL.GL_

在CSS3中,可以利用transform功能来实现文字或图像的旋转、缩放、倾斜、移动这四种类型的变形处理

CSS3中的变形处理(transform)属 transform的功能分类 1.旋转 transform:rotate(45deg); 该语句使div元素顺时针旋转45度.deg是CSS 3的"Values and Units"模块中定义的一个角度单位. 2.缩放 transform:scale(0.8,1); 使用缩放的方法实现文字或图像的缩放效果,在参数中指定缩放倍率.该语句使用scale方法使该元素在水平方向上缩小了20%,垂直方向上不缩放. 3.倾斜 transform:ske