2.canvas绘制网格以及坐标轴
来源:互联网 发布:卫浴行业数据 编辑:程序博客网 时间:2024/06/01 09:11
html代码:
<canvas id="canvas2"width="300" height="300"></canvas>JS代码:
var canvas = document.getElementById('canvas2'), context = canvas.getContext('2d'), axis_margin = 40, axis_origin = {x : axis_margin , y : canvas.height - axis_margin}, axis_top = axis_margin , axis_right = canvas.width - axis_margin , horizontal_tick_spacing = 10, vertical_tick_spacing = 10 , axis_width = axis_right - axis_origin.x , axis_height = axis_origin.y - axis_top , num_vertical_ticks = axis_height / vertical_tick_spacing, num_horizontal_ticks = axis_width / horizontal_tick_spacing , tick_width = 10 , ticks_linewidth = 0.5 , ticks_color = 'white' , axis_linewidth = 1.0 , axis_color = 'white' ; function drawGrid(stepx , stepy){//绘制网格 context.strokeStyle = 'black'; context.lineWidth = 0.5 ; for(var i = stepx + 0.5 ; i < context.canvas.width ; i += stepx){ context.beginPath(); context.moveTo(i , 0); context.lineTo(i , context.canvas.height); context.stroke(); } for(var i = stepy + 0.5 ; i < context.canvas.height ; i += stepy){ context.beginPath(); context.moveTo(0 , i); context.lineTo(context.canvas.width , i); context.stroke(); } } function drawAxes(){//绘制坐标轴 context.save(); context.strokeStyle = axis_color; context.lineWidth = axis_linewidth; drawHorizontalAxis(); drawVerticalAxis(); context.lineWidth = ticks_linewidth; context.strokeStyle = ticks_color; drawVerticalAxisTicks(); drawHorizontalAxisTicks(); context.restore(); } function drawHorizontalAxis(){ context.beginPath(); context.moveTo(axis_origin.x , axis_origin.y); context.lineTo(axis_right , axis_origin.y); context.stroke(); } function drawVerticalAxis(){ context.beginPath(); context.moveTo(axis_origin.x , axis_origin.y); context.lineTo(axis_origin.x , axis_top); context.stroke(); } function drawVerticalAxisTicks(){ var deltaX; for(var i = 1;i < num_vertical_ticks ; ++i){ context.beginPath(); context.lineWidth=1; if(i % 5 === 0) deltaX = tick_width; else deltaX = tick_width / 2; context.moveTo(axis_origin.x - deltaX , axis_origin.y - i * vertical_tick_spacing); context.lineTo(axis_origin.x + deltaX , axis_origin.y - i * vertical_tick_spacing); context.stroke(); } } function drawHorizontalAxisTicks(){ var deltaY; for(var i = 1;i < num_horizontal_ticks ; ++i){ context.beginPath(); if(i % 5 === 0) deltaY = tick_width; else deltaY = tick_width / 2; context.moveTo(axis_origin.x + i * horizontal_tick_spacing , axis_origin.y - deltaY); context.lineTo(axis_origin.x + i * horizontal_tick_spacing , axis_origin.y + deltaY); context.stroke(); } } drawGrid(10,10); drawAxes();
阅读全文
0 0
- 2.canvas绘制网格以及坐标轴
- Canvas---Canvas版画图,坐标轴绘制,网格绘制,橡皮筋式画直线
- canvas绘制网格
- Canvas绘制网格
- Canvas练习之绘制网格
- canvas绘制网格(增加坐标)
- 【实例】html5在canvas上绘制坐标轴
- HTML5绘图之Canvas标签 绘制坐标轴
- ECharts修改坐标轴,坐标轴字体,坐标轴网格样式以及控制坐标轴是否显示
- javascript不受canvas大小改动影响 实现绘制坐标轴
- 绘制坐标轴
- matlab三维散点绘制以及坐标轴的设置
- 纯js与canvas实现心电图网格绘制
- 【转】Qt绘制坐标轴
- D3D坐标轴绘制实现
- 10.9 双坐标轴绘制
- UE4 坐标轴绘制
- 1.canvas矩形的绘制以及线的绘制
- NDK socket 创建失败
- OpenStack入门理解以及对虚拟化技术的思考
- ParticleScaler The script controls the particle size
- Windows 右键菜单打开MSYS-MinGW
- java项目(包含外部jar)打包
- 2.canvas绘制网格以及坐标轴
- json 简介
- newrelic的android sdk实现原理解析
- 893AChess For Three
- bzoj 3158: 千钧一发 最小割
- angular2基础/高级
- 进程和线程的区别
- 关于DIV相对于父DIV绝对定位
- 分治技巧在高级数据结构中的应用——cdq分治(一)&&bzoj3262例题详解