只用html和javascript能不能作出历史曲线图? 不能的要用VML或者SVG来画曲线历史数据,就保存到一个数据库里 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 求助vml吧~~目前认为客户端最好的制图方法了 谢谢楼上的,我不懂哦,不能保存在cookie里吗 历史数据存储在cookie,绘图的时候用层来实现,就是采用层数组,层的innerHTML是一个img控件 <html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>emu's paint without vlm</title></head><body><button onclick="testDrawCurve()">画曲线</button><button onclick="testDrawArc()">画弧线</button><button onclick="testDrawCircle()">画圆</button><button onclick="testDrawLine()">画线</button><button onclick="testDrawRectangle()">画矩形</button><button onclick="testDrawPie()">画饼图</button><div id=div1></div><SCRIPT LANGUAGE="JavaScript"><!--function testDrawCurve() { div1.innerHTML = drawCurve(); }function testDrawArc() { div1.innerHTML =drawArc(150,150,100,0,270,"blue") }function testDrawCircle() { div1.innerHTML = drawCircle(200,200,150,"blue"); }function drawCircle(x0,y0,radius,color) { return drawArc(x0,y0,radius,0,360,color) }function testDrawLine() { div1.innerHTML = drawLine(100,200,500,200,"yellow")+drawLine(300,100,300,400,"black")+drawLine(600,400,100,100,"violet") }function testDrawRectangle() { div1.innerHTML = drawRectangle(200,100,600,200,"blue")+drawRectangle(100,200,400,500,"red") }function testDrawPie() { div1.innerHTML = drawPie(300,200,120,0,45,"red"); }function drawLine(x0,y0,x1,y1,color) { var rs = ""; if (y0 == y1) //画横线 { if (x0>x1){var t=x0;x0=x1;x1=t} rs = "<span style='top:"+y0+";left:"+x0+";position:absolute;font-size:1px;background-color:"+color+";height:1; width:"+Math.abs(x1-x0)+"'></span>"; } else if (x0 == x1) //画竖线 { if (y0>y1){var t=y0;y0=y1;y1=t} rs = "<span style='top:"+y0+";left:"+x0+";position:absolute;font-size:1px;background-color:"+color+";width:1;height:"+Math.abs(y1-y0)+"'></span>"; } else { var lx = x1-x0 var ly = y1-y0 var l = Math.sqrt(lx*lx+ly*ly) rs = new Array(); var px,py,px0,py0,p; for (var i=0;i<l;i+=1) { p = i/l; px = parseInt(x0 + lx*p); py = parseInt(y0 + ly*p); if (px0!=px || py0!= py) rs[rs.length] = "<span style='top:"+py+";left:"+px+";height:1;width:1;position:absolute;font-size:1px;background-color:"+color+"'></span>"; px0=px; py0=py; } rs = rs.join(""); } return rs }function drawRectangle(x0,y0,x1,y1,color) { x0=parseInt(x0); x1=parseInt(x1); y0=parseInt(y0); y1=parseInt(y1); if (x0 == x1 || y0 == y1) return; if (x0>x1) {var t=x0;x0=x1;x1=t} if (y0>y1) {var t=y0;y0=y1;y1=t} return "<span style='top:"+y0+";left:"+x0+";position:absolute;background-color="+color+"; width:"+(x1-x0)+" ;height:"+(y1-y0)+"'></span>"; }function drawPie(x0,y0,radius,startAngle,endAngle,color) { var rs = drawArc(x0,y0,radius,startAngle,endAngle,color) startAngle = startAngle/360*Math.PI*2; endAngle = endAngle/360*Math.PI*2; var startx=Math.sin(startAngle)*radius+x0; var endx=Math.sin(endAngle)*radius+x0; var starty=Math.cos(startAngle)*radius+y0; var endy=Math.cos(endAngle)*radius+y0; rs += drawLine(x0,y0,startx,starty,color) rs += drawLine(x0,y0,endx,endy,color) return rs; }function drawArc(x0,y0,radius,startAngle,endAngle,color) { rs = new Array(); tmpar = new Array(); startAngle = startAngle/360*Math.PI*2; endAngle = endAngle/360*Math.PI*2; var dx,dy,dx0,dy0; for (var i=startAngle;i<endAngle;i+=(1/radius)) { dx = parseInt(Math.sin(i)*radius+x0); dy = parseInt(Math.cos(i)*radius+y0); if (dx!=dx0 || dy!=dy0) rs[rs.length] = "<span style='top:"+dy+";left:"+dx+";position:absolute;height:1;width:1;position:absolute;font-size:1px;background-color:"+color+"'></span>"; dx0=dx;dy0=dy; } return (rs.join("")); }function drawCurve() { var rs = new Array(); for (var i=0;i<2*Math.PI;i+=.01) { var x = parseInt(300-Math.sin(i)*100) var y = parseInt(300-Math.cos(i)*100) rs[rs.length] = "<span style='top:"+x+";left:"+(i*100+90)+" ;height:1;width:1;position:absolute;font-size:1px;background-color:blue'></span>"; rs[rs.length] = "<span style='top:"+y+";left:"+(i*100+90)+" ;height:1;width:1;position:absolute;font-size:1px;background-color:blue'></span>"; } return rs.join(""); }//--></SCRIPT></body></html> 可以的,就是用很多div了,不过显示的速度很慢的,还是推荐用vml楼主如果需要的话,我这里有点资料,可以给我消息,留下Email,我发给你吧 能不能给我一个[email protected] 多谢了! 很久立前写的http://www.webizs.com/ada/listA.asp?aid=48&bid=3http://www.webizs.com/ada/listA.asp?aid=10&bid=3http://www.webizs.com/ada/listA.asp?aid=47&bid=3 jquery简单的选择器问题 谁能提供一个分享到人人网的代码 菜鸟提问:我的javascript 运行无效果,原因分析 在input的value值里写js脚本??? 日期控件 问题~ 急~ ----->小白问 小白问题了~~ 求助~~在线等`~ JavaScript 问题 关于tr背景色 这段代码为什么会出错? 会跳动的文字 sql if 查询数据库 jsp中的div标签添加横向滚动条无法实现是怎么回事 onclick事件设置div的visibility 如何做个浮动的报表表头???------------给个提示就行
目前认为客户端最好的制图方法了
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>emu's paint without vlm</title>
</head>
<body>
<button onclick="testDrawCurve()">画曲线</button>
<button onclick="testDrawArc()">画弧线</button>
<button onclick="testDrawCircle()">画圆</button>
<button onclick="testDrawLine()">画线</button>
<button onclick="testDrawRectangle()">画矩形</button>
<button onclick="testDrawPie()">画饼图</button>
<div id=div1></div>
<SCRIPT LANGUAGE="JavaScript">
<!--
function testDrawCurve()
{
div1.innerHTML = drawCurve();
}
function testDrawArc()
{
div1.innerHTML =drawArc(150,150,100,0,270,"blue")
}
function testDrawCircle()
{
div1.innerHTML = drawCircle(200,200,150,"blue");
}
function drawCircle(x0,y0,radius,color)
{
return drawArc(x0,y0,radius,0,360,color)
}
function testDrawLine()
{
div1.innerHTML = drawLine(100,200,500,200,"yellow")+drawLine(300,100,300,400,"black")+drawLine(600,400,100,100,"violet")
}
function testDrawRectangle()
{
div1.innerHTML = drawRectangle(200,100,600,200,"blue")+drawRectangle(100,200,400,500,"red")
}
function testDrawPie()
{
div1.innerHTML = drawPie(300,200,120,0,45,"red");
}function drawLine(x0,y0,x1,y1,color)
{
var rs = "";
if (y0 == y1) //画横线
{
if (x0>x1){var t=x0;x0=x1;x1=t}
rs = "<span style='top:"+y0+";left:"+x0+";position:absolute;font-size:1px;background-color:"+color+";height:1; width:"+Math.abs(x1-x0)+"'></span>";
}
else if (x0 == x1) //画竖线
{
if (y0>y1){var t=y0;y0=y1;y1=t}
rs = "<span style='top:"+y0+";left:"+x0+";position:absolute;font-size:1px;background-color:"+color+";width:1;height:"+Math.abs(y1-y0)+"'></span>";
}
else
{
var lx = x1-x0
var ly = y1-y0
var l = Math.sqrt(lx*lx+ly*ly)
rs = new Array();
var px,py,px0,py0,p;
for (var i=0;i<l;i+=1)
{
p = i/l;
px = parseInt(x0 + lx*p);
py = parseInt(y0 + ly*p);
if (px0!=px || py0!= py)
rs[rs.length] = "<span style='top:"+py+";left:"+px+";height:1;width:1;position:absolute;font-size:1px;background-color:"+color+"'></span>";
px0=px;
py0=py;
}
rs = rs.join("");
}
return rs
}
function drawRectangle(x0,y0,x1,y1,color)
{
x0=parseInt(x0);
x1=parseInt(x1);
y0=parseInt(y0);
y1=parseInt(y1);
if (x0 == x1 || y0 == y1) return;
if (x0>x1) {var t=x0;x0=x1;x1=t}
if (y0>y1) {var t=y0;y0=y1;y1=t}
return "<span style='top:"+y0+";left:"+x0+";position:absolute;background-color="+color+"; width:"+(x1-x0)+" ;height:"+(y1-y0)+"'></span>";
}
function drawPie(x0,y0,radius,startAngle,endAngle,color)
{
var rs = drawArc(x0,y0,radius,startAngle,endAngle,color)
startAngle = startAngle/360*Math.PI*2;
endAngle = endAngle/360*Math.PI*2;
var startx=Math.sin(startAngle)*radius+x0;
var endx=Math.sin(endAngle)*radius+x0;
var starty=Math.cos(startAngle)*radius+y0;
var endy=Math.cos(endAngle)*radius+y0;
rs += drawLine(x0,y0,startx,starty,color)
rs += drawLine(x0,y0,endx,endy,color)
return rs;
}
function drawArc(x0,y0,radius,startAngle,endAngle,color)
{
rs = new Array();
tmpar = new Array();
startAngle = startAngle/360*Math.PI*2;
endAngle = endAngle/360*Math.PI*2;
var dx,dy,dx0,dy0;
for (var i=startAngle;i<endAngle;i+=(1/radius))
{
dx = parseInt(Math.sin(i)*radius+x0);
dy = parseInt(Math.cos(i)*radius+y0);
if (dx!=dx0 || dy!=dy0)
rs[rs.length] = "<span style='top:"+dy+";left:"+dx+";position:absolute;height:1;width:1;position:absolute;font-size:1px;background-color:"+color+"'></span>";
dx0=dx;dy0=dy;
}
return (rs.join(""));
}
function drawCurve()
{
var rs = new Array();
for (var i=0;i<2*Math.PI;i+=.01)
{
var x = parseInt(300-Math.sin(i)*100)
var y = parseInt(300-Math.cos(i)*100)
rs[rs.length] = "<span style='top:"+x+";left:"+(i*100+90)+" ;height:1;width:1;position:absolute;font-size:1px;background-color:blue'></span>";
rs[rs.length] = "<span style='top:"+y+";left:"+(i*100+90)+" ;height:1;width:1;position:absolute;font-size:1px;background-color:blue'></span>";
}
return rs.join("");
}
//-->
</SCRIPT>
</body>
</html>
http://www.webizs.com/ada/listA.asp?aid=48&bid=3
http://www.webizs.com/ada/listA.asp?aid=10&bid=3
http://www.webizs.com/ada/listA.asp?aid=47&bid=3