效果如图:
canvas绘制圆弧所以说,如果第一个圆弧没有 closePath() 并且第二个圆弧没有 beginPath() 的话就是这样的效果:
canvas绘制矩形 绘制线段canvas绘制片段 如果没有 moveTo 那么第一次 lineTo 的效果和 moveTo 一样,
例如:
效果如下:
canvas绘制线段每次lineTo后如果没有moveTo,那么下次lineTo的开始点为前一次lineTo的结束点
例如:
// 绘制片段 context.strokeStyle = 'pink'; context.lineTo(200, 200); context.lineTo(200, 100); context.lineTo(100,50); context.stroke();效果如下:
canvas绘制线段我们可以使用 canvas 的线段绘制各种各样的图形,比如绘制一个六边形
var n = 0; var dx = 150; var dy = 150; var s = 100; context.beginPath(); context.fillStyle = 'pink'; context.strokeStyle = 'rgb(0,0,100)'; var x = Math.sin(0); var y = Math.cos(0); var dig = Math.PI / 15 * 5; for (var i = 0; i < 6; i++) { var x = Math.sin(i * dig); var y = Math.cos(i * dig); context.lineTo(dx + x * s, dy + y * s); console.log( x ,y ) } context.closePath(); context.fill(); context.stroke(); 使用canvas绘制六边形绘制 30 边形:
var n = 0; var dx = 150; var dy = 150; var s = 100; context.beginPath(); context.fillStyle = 'pink'; context.strokeStyle = 'rgb(0,0,100)'; var x = Math.sin(0); var y = Math.cos(0); var dig = Math.PI / 15 * 7; for (var i = 0; i < 30; i++) { var x = Math.sin(i * dig); var y = Math.cos(i * dig); context.lineTo(dx + x * s, dy + y * s); console.log( x ,y ) } context.closePath(); context.fill(); context.stroke();效果如下:
canvas绘制 30 边形 线性渐变
var lg= context.createLinearGradient(xStart,yStart,xEnd,yEnd)
lg.addColorStop(offset,color)
例如:
var g1 = context.createLinearGradient(0, 0, 0, 300); g1.addColorStop(0, '#E55D87'); g1.addColorStop(1, '#5FC3E4'); context.fillStyle = g1; context.fillRect(0, 0, 400, 300);效果如下:
canvas绘制渐变 径向渐变
var rg=context.createRadialGradient(xStart,yStart,radiusStart,xEnd,yEnd,radiusEnd)
rg.addColorStop(offset,color)
例如:
// 同心圆径向渐变 var g1 = context.createRadialGradient(200, 150, 0, 200, 150, 200); g1.addColorStop(0.1, '#F09819'); g1.addColorStop(1, '#EDDE5D'); context.fillStyle = g1; context.beginPath(); context.arc(200, 150, 100, 0, Math.PI * 2, true); context.closePath(); context.fill(); canvas绘制同心圆径向渐变 //不同圆心的径向渐变模型 var g1 = context.createRadialGradient(100, 150, 10, 300, 150, 80); g1.addColorStop(0.1, '#F09819'); g1.addColorStop(0.8, 'red'); g1.addColorStop(1, '#EDDE5D'); context.fillStyle = g1; context.fillRect(0, 0, 300, 500);效果图:
不同圆心径向渐变 图形变形 缩放