HTML5技术

canvas画直角坐标系 - shbwh-tswq

字号+ 作者:H5之家 来源:H5之家 2017-03-18 10:02 我要评论( )

canvas画直角坐标系 2017年3月17日 利用canvas画直角坐标系其实挺简单的,只要确定了原点(0,0)点,也可以是其他的点,只要自己知道那是原点就行!知道了原点再分别向X轴方向和Y轴方向画两条直线即可(X轴和Y轴也是相对的,这个纯看个人喜好和实际需求)。

canvas画直角坐标系

2017年3月17日

利用canvas画直角坐标系其实挺简单的,只要确定了原点(0,0)点,也可以是其他的点,只要自己知道那是原点就行!知道了原点再分别向X轴方向和Y轴方向画两条直线即可(X轴和Y轴也是相对的,这个纯看个人喜好和实际需求)。

闲话不多说直接看代码:

canvas画直角坐标系和柱状图canvas画直角坐标系及柱状图<!--为了表现与样式分离同时为了页面简洁,引入一个外部js文件--> ); ); ).hide(); );

然后就是直角坐标系的绘制方法(如果那位大神看到了功能更加完善,代码量可以更加精简的,请不吝赐教,谢谢):

1 function Coordinate(x,y){ originX = x; 4 var originY = y; cxt.font = "2rem 微软雅黑"; cxt.strokeStyle = "black";cxt.lineWidth = 3;     cxt.beginPath();cxt.moveTo(originX,originY);cxt.lineTo(originX,originY-320);cxt.stroke();cxt.moveTo(originX,originY-320);cxt.lineTo(originX+3,originY-310); cxt.stroke(); 20 cxt.moveTo(originX,originY-320); 21 cxt.lineTo(originX-3,originY-310); 22 cxt.stroke();     cxt.moveTo(originX,originY); 26 cxt.lineTo(originX+450,originY); 27 cxt.stroke(); cxt.moveTo(originX+450,originY); 30 cxt.lineTo(originX+440,originY-3); 31 cxt.stroke(); 32 cxt.moveTo(originX+450,originY); 33 cxt.lineTo(originX+440,originY+3); 34 cxt.stroke(); 35 cxt.fillText("Y轴",originX-5,originY-325) 36 }

然后就是柱状图的绘制方法:

function ColumnChart1(x,y,arr){ //绘制之前先清空原有的柱状图所占区域 cxt.clearRect(x,y,500,0); .arr= arr; (i==0){ var originX = x+40; var originY = y-1; }else{ var originX = i*70+80; var originY = y-1; } cxt.beginPath(); cxt.strokeStyle = arrColor[i];//设置线条颜色 cxt.lineWidth = 20;//这里为了方便直接将线条的宽度设置为20,这样就可以模拟柱子 cxt.moveTo(originX+(i+1)*20,originY);//柱子的顶点位置,这里因为数组内数字小,所以都乘十了,这样有利于小数字的表现 cxt.lineTo(originX+(i+1)*20,originY-(arr[i]*10));//调整每根柱子的间距; cxt.stroke(); cxt.font = "20px 宋体" cxt.fillText(arr[i],originX+(i+1)*20-10,originY-(arr[i]*10+3)); //文字的绘制 cxt.font = "13px 宋体" cxt.fillText("第"+(i+1)+"季度业绩",originX+(i+1)*20-35,originY+20) } }

如果还想图表看起来更加美观,可以用canvas提供的shadowColor、shadowOffsetX、shadowOffsetY等相关属性设置阴影。

同时以柱子的顶点为圆心画一个颜色略异于柱子的椭圆即可。

 

 

 

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

相关文章
  • 列表总结Canvas和SVG的区别 - 妙音天女

    列表总结Canvas和SVG的区别 - 妙音天女

    2017-03-17 10:00

  • canvas的beginPath和closePath分析总结,包括多段弧的情况 - 妙音天女

    canvas的beginPath和closePath分析总结,包括多段弧的情况 - 妙音天

    2017-03-17 09:03

  • 解决canvas跨域问题(图片,视频资源跨域) - 小结巴巴吧

    解决canvas跨域问题(图片,视频资源跨域) - 小结巴巴吧

    2017-03-08 16:04

  • canvas标签的使用 - Aqiaoba

    canvas标签的使用 - Aqiaoba

    2017-03-02 17:00

网友点评
)