你的位置:首页 > 网页设计

[网页设计]HTML5的canvas实现的画曲线图效果

HTML5的canvas实现的画曲线图效果:

本章节分享一段代码实例,此代码能够实现画曲线图和心形图等,感兴趣的朋友可以自己做一下分析。

代码实例如下:

<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="author" content="http://www.51texiao.cn/" /><title>蚂蚁部落</title><style type="text/css">#apDiv1 {  position:absolute;  width:120px;  height:300px;  z-index:1;  left: 840px;  top: 80px;}</style></head><body><canvas id="canvas" width="900" height="600" style="border:1px solid #c3c3c3">浏览器不支持canvas</canvas><div id="apDiv1"> <form>  玫瑰曲线方程:  r=a+bsin(m/n*x)  选择参数:  m:<input type="number" name="m" min="2" max="29" value="29"/>  n:<input type="number" name="n" min="1" max="12" value="11"/>  a:<input type="number" name="a" min="0" max="5" value="1"/>  b:<input type="number" name="b" min="1" max="7" value="5"/>  <input type="button" value=" 画 图 " onClick="draw();">  <hr>  <input type="button" value=" 画 图 2 " onClick="draw2();">  <hr>  <input type="button" value=" 心形图 " onClick="draw3();"> </form></div><script type="text/javascript"> function draw(){  var ctx = document.getElementById('canvas').getContext('2d');  ctx.save();  ctx.translate(400,300);  ctx.clearRect(-400,-300,800,600); ctx.strokeStyle = "#cc0000";  var a = 0, b = 1, m = 6, n = 1; m = document.forms[0].m.value; n = document.forms[0].n.value; a = document.forms[0].a.value;  b = document.forms[0].b.value;  drawRose(ctx,a,b,m,n);  ctx.restore(); } function drawRose(ctx,a,b,m,n){  ctx.beginPath();  var e = 0, c = 120;  var k = 2 * Math.PI / 360; do {   var r = a/b + Math.sin( m * e / n * k);  r = r * c;   var x = r * Math.cos( e * k );  var y = r * Math.sin( e * k );  e += 0.1;   ctx.lineTo(x,y);  }  while ( e <= 4320 );  ctx.stroke(); } function draw2(){  var ctx = document.getElementById('canvas').getContext('2d');  ctx.save();  ctx.translate(400,300);  ctx.clearRect(-400,-300,800,600); ctx.strokeStyle = "#cc0000";  ctx.beginPath(); //ctx.moveTo(0,0); var e = 0, c = 150;  var k = 2 * Math.PI / 360; do {   x = 150*Math.cos( 5/2 * e*k ) + 50*Math.cos( 15/16 * 5/2 * e*k );   y = 150*Math.sin( 5/2 * e*k ) - 50*Math.sin( 15/16 * 5/2 * e*k );   e += 0.1;   ctx.lineTo(x,y);  }  while ( e <= 3600 );  ctx.stroke();  ctx.restore();} function draw3(){  var ctx = document.getElementById('canvas').getContext('2d');  ctx.save();  ctx.translate(400,300);  ctx.clearRect(-400,-300,800,600); ctx.strokeStyle = "#ff0000";  ctx.beginPath();  var x = 1, y; do {   y = -80*(Math.sqrt(1-x*x) + Math.pow(x*x,1/3));   x -= 0.001;   ctx.lineTo(100*x,y);  }  while ( x >= -1 );  do {   y = 80*(Math.sqrt(1-x*x) - Math.pow(x*x,1/3));   x += 0.001;   ctx.lineTo(100*x,y);  }  while ( x <= 1 ); ctx.closePath();   var grad = ctx.createRadialGradient(-40,-60,10,-40,-40,200); grad.addColorStop(0, "#ffcc00");  grad.addColorStop(1, "#ff0000");  ctx.fillStyle = grad; ctx.fill();  ctx.restore();} window.onload=function (){  draw();} </script></body></html>

原文地址是:http://www.51texiao.cn/HTML5jiaocheng/2015/0613/4159.html

最为原始地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=13478


苏州旅游团报价什么时候去苏州旅游最好去苏州旅游最佳路线苏州旅游景点推荐苏州跟团旅游报价多少首尔江南区旅游景点介绍 沙洲坝旅游景点介绍 乐山大佛简介_乐山大佛旅游景点介绍 鹅銮鼻灯塔旅游景点介绍 佛山南海影视城在哪里?中央电视台南海影视城怎么样? 长隆国际大马戏演出是晚上几点?珠海长隆大马戏座位随便坐吗? 觅春寻花 河南赏花季之南阳 长隆国际大马戏每天都有演出吗?珠海长隆大马戏座位坐哪里好? 中山纪念堂演出信息?广州中山纪念堂演出门票多少钱? 广州中山纪念堂演出时间?中山纪念堂演出内容? 广州市中山纪念堂地址?中山纪念堂在哪里? 广州中山纪念堂门票优惠政策?中山纪念堂门票哪些人优惠? 在迪拜机场买什么便宜? 泰国的泼水节是4月份吗?去泰国过泼水节要带什么吗? 马尔代夫有分淡旺季吗?淡旺季是什么时候? 泰国泼水节最热闹的地方是? AQ147A1R0CAJME Datasheet AQ147A1R0CAJME Datasheet 12062A180JAT2A Datasheet 12062A180JAT2A Datasheet AQ147A1R0CAJWE Datasheet AQ147A1R0CAJWE Datasheet 安顺去圣基茨和尼维斯旅游 安顺去圣基茨和尼维斯旅游 安顺去圣基茨和尼维斯旅游 安顺去圣卢西亚旅游 安顺去圣卢西亚旅游 安顺去圣卢西亚旅游 安顺去圣马力诺旅游 安顺去圣马力诺旅游 安顺去圣马力诺旅游