用html编写一幅简单的画,使用html5画简单的折线图
//得到畫布
var can1=document.getElementByIdx_x_x_x("can");
//得到畫筆
var cxt=can1.getContext("2d");
//定義圖表的數據,該方式為創建數組直接量的方式
var sale_data=[80,92,104,110,68,50,45,90,74,98,103];
//首先為背景進行設置漸變的效果,表示的是從(0,0)到(600,0)即縱坐標上邊顯示漸變的效果
var g=cxt.createLinearGradient(0,100);
g.addColorStop(0,"#e0e0e0");
g.addColorStop(1,"#ffffff");
//將漸變效果添加在我們的畫布上邊
cxt.fillStyle=g;
//開始繪制效果
cxt.fillRect(0,can1.width,can1.height);
//設置要繪制方格的行數和列數
var cols=sale_data.length+1;
var rows=4;
//計算每一個小方格的寬度和高度
var cell_width=can1.width/cols;
var cell_height=can1.height/rows;
//設置繪制的顏色
cxt.strokeStyle="#a0a0a0";
//調用繪制表格的函數
drawTable(sale_data);
//繪制表格的函數
function drawTable(data){
cxt.beginPath();
//開始畫豎線
for(var i=0;i<=rows;i++){
//計算繪制的坐標
var heiy=cell_height*i;
cxt.moveTo(0,heiy);
cxt.lineTo(can.width,heiy);
}
//繪制橫線
for(var j=0;j<=cols;j++){
//計算繪制的坐標
var widx=cell_width*j;
cxt.moveTo(widx,0);
cxt.lineTo(widx,can1.height);
}
//繪制表格完成
cxt.stroke();
//獲取數據當中的最大值,以便可以劃分縱坐標軸,來進行繪圖,即每個像素代表的數值是多少,縱坐標的最大值
var max_val=0;
for(var i=0;i
if(max_val
max_val=data[i];
}
}
//之后我們對最大值再放大一點,作為坐標軸的最大值
max_val=max_val*1.1;
//現在我們計算每個數據的坐標軸
//這里我們將計算出來的坐標軸數據寫入到我們的數組對象當中去
var points=[];
for(var i=0;i
var v=data[i];
var px=cell_width*(i+1);
var py=can1.height-can1.height*(v/max_val);
points.push({"x":px,"y":py});
}
//開始繪制折線
cxt.beginPath();
cxt.moveTo(points[0].x,points[0].y);
for(var j=1;j
cxt.lineTo(points[j].x,points[j].y);
}
cxt.strokeStyle="#ee0000";
cxt.stroke();
//繪制坐標的小圓點
for(var j in points){
var p=points[j];
cxt.beginPath();
cxt.arc(p.x,p.y,6,2*Math.PI);
cxt.fillStyle="#ee0000";
cxt.fill();
}
}
轉自:http://blog.sina.com.cn/s/blog_7256fe8f010165cb.html
總結
以上是生活随笔為你收集整理的用html编写一幅简单的画,使用html5画简单的折线图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pyqt5生成py的文件为什么是c 语言
- 下一篇: Python: ufunc ‘bitwi