博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习canvas过程中的小菜鸟
阅读量:7050 次
发布时间:2019-06-28

本文共 2702 字,大约阅读时间需要 9 分钟。

canvas浅谈

canvas是一个可以使用脚本(通常为JavaScript)在其中绘制图形的 HTML 元素

基本用法:我们用代码来讲解

    
Title

canvas元素有一个做 getContext() 的方法,这个方法是用来获得渲染上下文和它的绘画功能。getContext()只有一个参数,上下文的格式。

基本常用方法:

1. fillRect(x, y, width, height)

绘制一个填充的矩形

2. strokeRect(x, y, width, height)

绘制一个矩形的边框

3. clearRect(x, y, width, height)

清除指定矩形区域,让清除部分完全透明

4. beginPath()

新建一条路径,生成之后,图形绘制命令被指向到路径上生成路径

5. closePath()

闭合路径之后图形绘制命令又重新指向到上下文中

6. stroke()

通过线条来绘制图形轮廓

7. fill()

通过填充路径的内容区域生成实心的图形

8. lineTo(x, y)

绘制一条从当前位置到指定x以及y位置的直线

9. arc(x, y, radius, startAngle, endAngle, anticlockwise)

画一个以(x,y)为圆心的以radius为半径的圆弧(圆),从startAngle开始到endAngle结束,按照anticlockwise给定的方向(默认为顺时针)来生成

10. arcTo(x1, y1, x2, y2, radius)

根据给定的控制点和半径画一段圆弧,再以直线连接两个控制点

11. fillStyle = color

设置图形的填充颜色

12. strokeStyle = color

设置图形轮廓的颜色

13. lineWidth = value

设置线条宽度

14. lineCap = type

设置线条末端样式

15. lineJoin = type

设定线条与线条间接合处的样式

16. miterLimit = value

限制当两条线相交时交接处最大长度;所谓交接处长度(斜接长度)是指线条交接处内角顶点到外角顶点的长度

17. getLineDash()

返回一个包含当前虚线样式,长度为非负偶数的数组

18. setLineDash(segments)

设置当前虚线样式

19. lineDashOffset = value

设置虚线样式的起始偏移量

20. fillText(text, x, y [, maxWidth])

在指定的(x,y)位置填充指定的文本,绘制的最大宽度是可选的

21. strokeText(text, x, y [, maxWidth])

在指定的(x,y)位置绘制文本边框,绘制的最大宽度是可选的

22. font = value

当前我们用来绘制文本的样式. 这个字符串使用和 CSS font 属性相同的语法. 默认的字体是 10px sans-serif

23. textAlign = value

文本对齐选项. 可选的值包括:start, end, left, right or center. 默认值是 start

24. textBaseline = value

基线对齐选项. 可选的值包括:top, hanging, middle, alphabetic, ideographic, bottom。默认值是 alphabetic。

25. direction = value

文本方向。可能的值包括:ltr, rtl, inherit。默认值是 inherit。

26. HTMLImageElement

这些图片是由Image()函数构造出来的,或者任何的元素

27. HTMLVideoElement

用一个HTML的 元素作为你的图片源,可以从视频中抓取当前帧作为一个图像

28. HTMLCanvasElement

可以使用另一个 元素作为你的图片源

29. ImageBitmap

这是一个高性能的位图,可以低延迟地绘制,它可以从上述的所有源以及其它几种源中生成

30. drawImage(image, x, y, width, height)

这个方法多了2个参数:width 和 height,这两个参数用来控制 当像canvas画入时应该缩放的大小

31. drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)

第一个参数和其它的是相同的,都是一个图像或者另一个 canvas 的引用。其它8个参数最好是参照右边的图解,前4个是定义图像源的切片位置和大小,后4个则是定义切片的目标显示位置和大小

32. save()restore()

save 和 restore 方法是用来保存和恢复 canvas 状态的,都没有参数。Canvas 的状态就是当前画面应用的所有样式和变形的一个快照

33. translate(x, y)

translate 方法接受两个参数。x 是左右偏移量,y 是上下偏移量

34. rotate(angle)

这个方法只接受一个参数:旋转的角度(angle),它是顺时针方向的,以弧度为单位的值

35. scale(x, y)

scale 方法接受两个参数。x,y 分别是横轴和纵轴的缩放因子,它们都必须是正值。值比 1.0 小表示缩小,比 1.0 大则表示放大,值为 1.0 时什么效果都没有

实战:使用路径画一个笑脸 练习路径

    
Title

实战:画两三角形 练习线条

    
Title

实战:各种圆

    
Title

arc()函数中的角度单位是弧度,不是度数。角度与弧度的js表达式:radians=(Math.PI/180)*degrees。

实战:综合使用

    
Title

实战:颜色练习

    
Title

实战:文字练习

    
Title

后面有的属性不太常用,其实我我有点蒙圈了!嘻嘻 ,大家如果需要继续深入学习,可到下面的网站

转载于:https://www.cnblogs.com/zhnaglei/p/6606140.html

你可能感兴趣的文章
LINQ的ORM功能中对使用sp_executesql语句的存储过程的支持
查看>>
springMvc 的参数验证 BindingResult result 的使用
查看>>
hadoop主节点(NameNode)备份策略以及恢复方法
查看>>
fsync体会
查看>>
OpenCV 2.4.11 VS2012 Configuration
查看>>
快速排序
查看>>
【Unity】Collider随骨骼动画运动
查看>>
SVN 权限配置详细说明
查看>>
【SQL】在SQL Server中多表关联查询问题
查看>>
Elasticsearch 5.0 —— Head插件部署指南(Head目前支持5.0了!请不要看本篇文章了)...
查看>>
计算字符串相似度的简易算法
查看>>
24.4. 批量生成监控配置文件
查看>>
您知道这是微软什么时期的网页吗?!
查看>>
将不确定变为确定~真的是SqlDataReader引起的超时?
查看>>
TCP客户机-服务器
查看>>
Hibernate连接DB2的问题(已解决)
查看>>
I.MX6 dts 在哪里、怎么编译
查看>>
第 44 章 Chart 图表
查看>>
JQuery ztree 异步加载实践
查看>>
XOR算法的原理和实现
查看>>