canvas教程

玩转html5canvas画图(4)

字号+ 作者:H5之家 来源:H5之家 2015-09-07 13:15 我要评论( )

1 function draw2(id) { 2 var canvas = document.getElementById(id); 3 if (canvas == null ) { ; 5 } 6 var context = canvas.getContext("2d" ); 7 context.fillStyle = "#EEEFF" ; 8 context.fillRect(0, 0, 4

1 function draw2(id) { 2 var canvas = document.getElementById(id); 3 if (canvas == null) { ; 5 } 6 var context = canvas.getContext("2d"); 7 context.fillStyle = "#EEEFF"; 8 context.fillRect(0, 0, 400, 300); 9 var n = 0; 10 var dx = 150; 11 var dy = 150; 12 var s = 100; 13 context.beginPath(); 14 context.globalCompositeOperation = 'and'; 15 context.fillStyle = 'rgb(100,255,100)'; 16 var x = Math.sin(0); 17 var y = Math.cos(0); 18 var dig = Math.PI / 15 * 11; 19 context.moveTo(dx, dy); 20 for (var i = 0; i < 30; i++) { 21 var x = Math.sin(i * dig); 22 var y = Math.cos(i * dig); 23 context.bezierCurveTo(dx + x * s, dy + y * s - 100, dx + x * s + 100, dy + y * s, dx + x * s, dy + y * s); 24 } 25 context.closePath(); 26 context.fill(); 27 context.stroke(); 28 }

关于贝塞尔曲线可以参考百度百科和这篇文章

 

 

 线性渐变 var lg= context.createLinearGradient(xStart,yStart,xEnd,yEnd)

 线性渐变颜色lg.addColorStop(offset,color)

    xstart:渐变开始点x坐标

    ystart:渐变开始点y坐标

    xEnd:渐变结束点x坐标

    yEnd:渐变结束点y坐标

 

    offset:设定的颜色离渐变结束点的偏移量(0~1)

    color:绘制时要使用的颜色

 

给出书本偏移量的解析图,从图可以看出线性渐变可以是两种以上颜色的渐变

View Code

1 function draw25(id) { 2 var canvas = document.getElementById(id); 3 if (canvas == null) ; 5 var context = canvas.getContext('2d'); 6 var g1 = context.createLinearGradient(0, 0, 0, 300); g1.addColorStop(0.5, 'rgb(0,255,0)');g1.addColorStop(1, 'rgb(0,0,255)'); context.fillStyle = g1; context.fillRect(0, 0, 400, 300); 16 }

 

 

径向渐变(发散)var rg=context.createRadialGradient(xStart,yStart,radiusStart,xEnd,yEnd,radiusEnd)

径向渐变(发散)颜色rg.addColorStop(offset,color)

    xStart:发散开始圆心x坐标

    yStart:发散开始圆心y坐标

    radiusStart:发散开始圆的半径

    xEnd:发散结束圆心的x坐标

    yEnd:发散结束圆心的y坐标

    radiusEnd:发散结束圆的半径

 

    offset:设定的颜色离渐变结束点的偏移量(0~1)

    color:绘制时要使用的颜色

书本并没有给出发散偏移量的图,特地画了幅:

下面给出两个实验

 

View Code

1 function draw26(id) { var canvas = document.getElementById(id); 4 if (canvas == null) 5 return false; 6 var context = canvas.getContext('2d'); 7 var g1 = context.createRadialGradient(200, 150, 0, 200, 150, 100); 8 g1.addColorStop(0.1, 'rgb(255,0,0)'); 9 g1.addColorStop(1, 'rgb(50,0,0)'); 10 context.fillStyle = g1; 11 context.beginPath(); 12 context.arc(200, 150, 100, 0, Math.PI * 2, true); 13 context.closePath(); canvas = document.getElementById(id); 18 if (canvas == null) ; 20 var context = canvas.getContext('2d'); 21 var g1 = context.createRadialGradient(100, 150, 10, 300, 150, 50); 22 g1.addColorStop(0.1, 'rgb(255,0,0)'); 23 g1.addColorStop(0.5, 'rgb(0,255,0)'); 24 g1.addColorStop(1, 'rgb(0,0,255)'); 25 context.fillStyle = g1; 26 context.fillRect(0, 0, 400, 300); 27 28 }

 

 

 图形变形

1、平移context.translate(x,y)

    x:坐标原点向x轴方向平移x

    y:坐标原点向y轴方向平移y

2、缩放context.scale(x,y)

    x:x坐标轴按x比例缩放

    y:y坐标轴按y比例缩放

3、旋转context.rotate(angle)

    angle:坐标轴旋转x角度(角度变化模型和画圆的模型一样)

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • html5canvas核心技术图形、动画与游戏开发源码

    html5canvas核心技术图形、动画与游戏开发源码

    2017-05-02 17:42

  • HTML5 canvas 作画板画图 可以做电子白板

    HTML5 canvas 作画板画图 可以做电子白板

    2017-04-27 12:02

  • Android画图学习免费下载

    Android画图学习免费下载

    2017-04-27 11:01

  • CAD迷你画图 V2017R4 官方版下载

    CAD迷你画图 V2017R4 官方版下载

    2017-04-27 10:03

网友点评