美文网首页
Canvas入门极简

Canvas入门极简

作者: 六个周 | 来源:发表于2019-02-20 23:26 被阅读74次

canvas我们多少都会有些接触,今天做一个回顾。

首先,我们知道<canvas> 是HTML5 中新增的元素,它可以结合JavaScript脚本绘制出各种各样的图形。

一、下面以画一个五角星来简单对其一些方法进行速记

第一步是定义canvas的长与宽。

<canvas id="test" width="800" height="500">
        您的浏览器不支持canvas属性
</canvas>

第二步是获取DOM元素以及获取上下文

var dom= document.getElementById("test");
var ctx = dom.getContext("2d");

第三步画起点

ctx.moveTo(100,150);

第四步开始画线的其余几个坐标

  ctx.lineTo(400,150);
  ctx.lineTo(130,350);
  ctx.lineTo(250,50);
  ctx.lineTo(350,350);
  ctx.lineTo(100,150);

第五步为五角星填充颜色

ctx.fillStyle="red";
ctx.fill();

第六步为五角星添加borderWidth为10px的边框,并添加颜色

ctx.lineWidth=10;
ctx.strokeStyle="blue';
stc.stroke();

至此,五角星画图完毕。总结上面我们要对基础的基础几个属性明明白白的。

getContext("2d)
moveTo()
lineTo()
fillStyle
fill()
lineWidth
strokeStyle
stroke()


二、深入一点点
浏览器支持

Internet Explorer 9、Firefox、Opera、Chrome 以及 Safari 支持 <canvas> 及其属性和方法。
注释:Internet Explorer 8 以及更早的版本不支持 <canvas> 元素

其它属性

1️⃣整体阴影(以下两个属性要一起使用)

shadowStyle----设置或返回用于阴影的颜色
shadowBlur----设置或返回用于阴影的模糊级别

2️⃣阴影形状的水平或垂直

shadowOffsetX----设置或返回阴影距形状的水平距离
shadowOffsetY----设置或返回阴影形状的垂直距离


三、一些方法

createLinearGradient()

createLinearGradient() 方法创建线性的渐变对象
渐变可用于填充矩形、圆形、线条、文本等等。
提示:请使用该对象作为 [strokeStyle]或 [fillStyle] 属性的值。
提示:请使用 [addColorStop()]方法规定不同的颜色,以及在 gradient 对象中的何处定位颜色

createPattern()

createPattern() 方法在指定的方向内重复指定的元素.
元素可以是图片、视频,或者其他 <canvas> 元素。
被重复的元素可用于绘制/填充矩形、圆形或线条等等.

context.createPattern(image,"repeat|repeat-x|repeat-y|no-repeat");

createRadialGradient()

createLinearGradient() 方法创建放射状/圆形渐变对象。
渐变可用于填充矩形、圆形、线条、文本等等。
提示:请使用该对象作为 [strokeStyle] 或 [fillStyle] 属性的值。
提示:请使用 [addColorStop()]方法规定不同的颜色,以及在 gradient 对象中的何处定位颜色


四、线条样式

lineCap

lineCap 属性设置或返回线条末端线帽的样式。
roundsquare 会使线条略微变长。默认值为butt

lineJoin

lineJoin 属性设置或返回所创建边角的类型,当两条线交汇时。
注释:值 "miter" 受 miterLimit 属性的影响。
属性值:bevel(斜角)、round(圆角)、miter(默认尖角)

lineWidth

lineWidth 属性设置或返回当前线条的宽度,以像素计。


五、矩形

rect()

rect() 方法创建矩形。使用 stroke()fill() 方法在画布上实际地绘制矩形。
语法context.rect(x,y,width,height)

fillRect()

fillRect() 方法绘制“已填色”的矩形。默认的填充颜色是黑色。
提示:请使用 fillStyle 属性来设置用于填充绘图的颜色、渐变或模式。

strokeRect()

strokeRect() 方法绘制矩形(不填色)。笔触的默认颜色是黑色。
提示:请使用 strokeStyle 属性来设置笔触的颜色、渐变或模式。

clearRect()

clearRect() 方法清空给定矩形内的指定像素。


六、路径

fill() : fill() 方法填充当前的图像(路径)。默认颜色是黑色.使用fillStyle属性来填充另一种颜色/渐变。
如果路径未关闭,那么 fill() 方法会从路径结束点到开始点之间添加一条线,以关闭该路径,然后填充该路径。

stroke() : stroke() 方法会实际地绘制出通过 moveTo() 和 lineTo() 方法定义的路径。默认颜色是黑色。使用 strokeStyle 属性来绘制另一种颜色/渐变。

beginPath():起始一条路径,或重置当前路径.

moveTo() : 把路径移动到画布中的指定点,不创建线条

closePath() : 创建从当前点回到起始点的路径

lineTo() : 添加一个新点,然后在画布中创建从该点到最后指定点的线条.

clip() : clip() 方法从原始画布中剪切任意形状和尺寸。

quadraticCurveTo(): quadraticCurveTo() 方法通过使用表示二次贝塞尔曲线的指定控制点,向当前路径添加一个点。需要两个点,第一个点是控制点,第二个点是结束点。

bezierCurveTo():bezierCurveTo() 方法通过使用表示三次贝塞尔曲线的指定控制点,向当前路径添加一个点。三次贝塞尔曲线需要三个点。前两个点是用于三次贝塞尔计算中的控制点,第三个点是曲线的结束点。

arc(): arc() 方法创建弧/曲线(用于创建圆或部分圆)

arcTo() : arcTo() 方法在画布上创建介于两个切线之间的弧/曲线。

isPointInPath(): isPointInPath() 方法返回 true,如果指定的点位于当前路径中;否则返回 false。


七、转换

scale():缩放当前绘图至更大或更小.
语法:ctx.scale(scalewidth,scaleheight);

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

translate(): translate() 方法重新映射画布上的 (0,0) 位置。

transform:通过 transform() 添加一个新的变换矩阵。换句话说,transform() 允许您缩放、旋转、移动并倾斜当前的环境。
transform() 方法的行为相对于由 rotate(), scale(), translate(), or transform() 完成的其他变换.
语法:context.transform(a,b,c,d,e,f);

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

八、图象绘制

context.drawImage(img,sx,sy,swidth,sheight,x,y,width,height);
drawImage() 方法在画布上绘制图像、画布或视频。
drawImage() 方法也能够绘制图像的某些部分,以及/或者增加或减少图像的尺寸。

20190223暂时总结到这里。

相关文章

网友评论

      本文标题:Canvas入门极简

      本文链接:https://www.haomeiwen.com/subject/zhxlyqtx.html