首页 > 其他 > 详细

Canvas--线条

时间:2017-11-01 18:10:43      阅读:246      评论:0      收藏:0      [点我收藏+]

  什么是Canvas?

  HTML5 <canvas> 元素用于图形的绘制,<canvas> 标签只是图形容器,canvas 元素本身是没有绘图能力的。所有的绘制工作必须在 JavaScript 内部完成。

  一个画布在网页中是一个默认大小300像素×150像素矩形框。<canvas>标签内的内容只有在浏览器不支持<canvas>时才会显示出来。

1 <canvas id="canvas" width="200" height="100" style="border:1px solid currentColor;">Your browser does not support Canvas, please upgrade your browser</canvas>
1 const canvas = document.getElementById(‘canvas‘)2 const context= canvas.getContext(‘2d‘)

  所有的绘图动作都需要依靠context来完成。

  绘制直线:

1 context.moveTo(0,0)
2 context.lineTo(100,100)
3 context.stroke()

  moveTo(x,y) 定义线条开始坐标

  lineTo(x,y) 定义线条结束坐标

  stroke()绘制直线

技术分享

  这样就绘制了一条从(0,0)到(100,100)的直线。

  注:Canvas是基于状态的绘图方式,moveTo(x,y)、lineTo(x,y)只是在定义将要绘制的直线的状态,只有调用了stroke()方法后,Canvas才会将之前设置的状态绘制到画布之上。

  lineWidth 和 strokeStyle

1 context.moveTo(0,0)
2 context.lineTo(100,100)
3 context.lineWidth = 10
4 context.strokeStyle = ‘#0091db‘
5 context.stroke()

技术分享

  绘制首尾相连的折线:多次调用lineTo()即可

 1 context.moveTo(50,50)
 2 context.lineTo(150,50)
 3 context.lineTo(150,25)
 4 context.lineTo(200,75)
 5 context.lineTo(150,125)
 6 context.lineTo(150,100)
 7 context.lineTo(50,100)
 8 context.lineWidth = 10
 9 context.strokeStyle = ‘#0091db‘
10 context.stroke()

技术分享

  绘制首尾不相连且状态一致的折线:多次调用moveTo()即可

1 for (let i = 0; i < 3; i++) {
2     context.moveTo(50 + 50 * i, 50)
3     context.lineTo(100 + 50 * i, 100)
4     context.lineTo(50 + 50 * i, 150)
5 }
6 context.lineWidth = 10
7 context.strokeStyle = ‘#0091db‘
8 context.stroke()

技术分享

  绘制首尾不相连且状态不一致的折线:由于每段线段的状态不一样,所以在绘制之前就需要使用beginPath()来告诉Canvas现在要开始绘制一条新的路径了

1 context.lineWidth = 10
2 for (let i = 0; i < 3; i++) {
3     context.beginPath()
4     context.strokeStyle = `rgb(${100 + i * 30},${100 + i * 60},${100 + i * 90})`
5     context.moveTo(50 + 50 * i, 50)
6     context.lineTo(100 + 50 * i, 100)
7     context.lineTo(50 + 50 * i, 150)
8     context.stroke()
9 }

技术分享

  

Canvas--线条

原文:http://www.cnblogs.com/yin-1841/p/7767742.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!