ASP可以画出曲线图吗?

TC_p 2003-10-17 08:11:10
请教我用ASP写一个应用程序,需要从一张数据Table中读出一组数据并画出曲线图。ASP可以吗?如何实现?
...全文
310 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
sandian 2003-10-28
  • 打赏
  • 举报
回复
[NB联盟原创]:教你用VML画人物造型
<!--
效果:http://www.lshdic.com/nb.htm

作画地址:http://www.lshdic.com/vmledit.htm

原作:NB联盟-风云舞

完整原代码在下边,呵呵~~
-->

<HTML xmlns:v>
<HEAD>
<META http-equiv='Content-Type' content='text/html;charset=gb2312'>
<Meta name='Gemeratpr' content='网络程序员伴侣(Lshdic)2004'>
<TITLE>网页标题</TITLE>
<STYLE>
v\:*{behavior:url(#default#VML);} //声明变量v为VML对象
*{font-size:12px;color:;}
a{text-decoration:none;}
a:hover{color:red;}
</STYLE>
</HEAD>
<BODY topmargin='2' leftmargin='2'>
<BASE target='_top'>
<?xml:namespace prefix=v />
<v:oval style="Z-INDEX:1006;LEFT:115px;WIDTH:470px;POSITION:absolute;TOP:56px;HEIGHT:397px" coordsize="21600,21600" fillcolor="white" strokecolor="black" strokeweight="1pt">
</v:oval>
<v:roundrect style="Z-INDEX:1007;FILTER:alpha(opacity=50,style=0);LEFT:205px;WIDTH:274px;POSITION:absolute;TOP:107px;HEIGHT:67px" arcsize="4321f" coordsize="21600,21600" fillcolor="white" strokecolor="black" strokeweight="1pt">
</v:roundrect>
<SPAN style="FONT-SIZE:50px;Z-INDEX:1015;LEFT:271px;COLOR:#000000;FONT-FAMILY:宋体;POSITION:absolute;TOP:112px;BACKGROUND-COLOR:#ffffff">
NB联盟</SPAN>
<v:oval style="Z-INDEX:1020;LEFT:192px;WIDTH:92px;POSITION:absolute;TOP:191px;HEIGHT:42px" coordsize="21600,21600" fillcolor="#374896" strokecolor="black" strokeweight="1pt">
<v:fill type="gradientRadial" color2="#83aaee">
</v:fill>
</v:oval>
<v:oval style="Z-INDEX:1020;LEFT:424px;WIDTH:92px;POSITION:absolute;TOP:191px;HEIGHT:42px" coordsize="21600,21600" fillcolor="#374896" strokecolor="black" strokeweight="1pt">
<v:fill type="gradientRadial" color2="#83aaee">
</v:fill>
</v:oval>
<v:rect style="Z-INDEX:1027;LEFT:332px;WIDTH:36px;POSITION:absolute;TOP:253px;HEIGHT:66px" coordsize="21600,21600" fillcolor="#374896" strokecolor="black" strokeweight="1pt">
<v:fill type="gradientRadial" color2="#83aaee">
</v:fill>
</v:rect>
<v:rect style="Z-INDEX:1028;LEFT:322px;WIDTH:9px;POSITION:absolute;TOP:303px;HEIGHT:16px" coordsize="21600,21600" fillcolor="#374896" strokecolor="black" strokeweight="1pt">
<v:fill type="gradientRadial" color2="#83aaee">
</v:fill>
</v:rect>
<v:rect style="Z-INDEX:1028;LEFT:369px;WIDTH:9px;POSITION:absolute;TOP:303px;HEIGHT:16px" coordsize="21600,21600" fillcolor="#374896" strokecolor="black" strokeweight="1pt">
<v:fill type="gradientRadial" color2="#83aaee">
</v:fill>
</v:rect>
<v:rect style="Z-INDEX:1036;LEFT:278px;WIDTH:152px;POSITION:absolute;TOP:355px;HEIGHT:5px" coordsize="21600,21600" fillcolor="#374896" strokecolor="black" strokeweight="1pt">
<v:fill type="gradientRadial" color2="#83aaee">
</v:fill>
</v:rect>
<v:line style="Z-INDEX:1040;LEFT:285px;POSITION:absolute;TOP:210px" from="0,0" to="105pt,0" strokecolor="black" strokeweight="1pt">
</v:line>
<v:line style="Z-INDEX:1041;LEFT:516px;POSITION:absolute;TOP:209px" from="0,0" to="36pt,-42.75pt" strokecolor="black" strokeweight="1pt">
</v:line>
<v:line style="Z-INDEX:1042;LEFT:563px;POSITION:absolute;TOP:153px" from="0,0" to="27pt,47.25pt" strokecolor="black" strokeweight="1pt">
</v:line>
<v:line style="Z-INDEX:1044;LEFT:193px;POSITION:absolute;TOP:209px" from="0,0" to="-45pt,-40.5pt" strokecolor="black" strokeweight="1pt">
</v:line>
<v:line style="Z-INDEX:1045;LEFT:133px;POSITION:absolute;TOP:156px" from="0,0" to="-23.25pt,43.5pt" strokecolor="black" strokeweight="1pt">
</v:line>
<v:line style="Z-INDEX:1007;LEFT:151px;POSITION:absolute;TOP:41px" from="0,0" to="52.5pt,36.75pt" strokecolor="black" strokeweight="1pt">
</v:line>
<v:line style="Z-INDEX:1008;LEFT:221px;POSITION:absolute;TOP:90px" from="0,0" to="-.75pt,-41.25pt" strokecolor="black" strokeweight="1pt">
</v:line>
<v:line style="Z-INDEX:1009;LEFT:220px;POSITION:absolute;TOP:35px" from="0,0" to="24.75pt,27.75pt" strokecolor="black" strokeweight="1pt">
</v:line>
<v:line style="Z-INDEX:1010;LEFT:253px;POSITION:absolute;TOP:72px" from="0,0" to="12.75pt,-33.75pt" strokecolor="black" strokeweight="1pt">
</v:line>
<v:line style="Z-INDEX:1011;LEFT:270px;POSITION:absolute;TOP:27px" from="0,0" to="20.25pt,22.5pt" strokecolor="black" strokeweight="1pt">
</v:line>
<v:line style="Z-INDEX:1012;LEFT:297px;POSITION:absolute;TOP:57px" from="0,0" to="24.75pt,-22.5pt" strokecolor="black" strokeweight="1pt">
</v:line>
<v:line style="Z-INDEX:1013;LEFT:330px;POSITION:absolute;TOP:27px" from="0,0" to="13.5pt,19.5pt" strokecolor="black" strokeweight="1pt">
</v:line>
<v:line style="Z-INDEX:1014;LEFT:348px;POSITION:absolute;TOP:53px" from="0,0" to="27.75pt,-16.5pt" strokecolor="black" strokeweight="1pt">
</v:line>
<v:line style="Z-INDEX:1015;LEFT:385px;POSITION:absolute;TOP:31px" from="0,0" to="18.75pt,21.75pt" strokecolor="black" strokeweight="1pt">
</v:line>
<v:line style="Z-INDEX:1016;LEFT:410px;POSITION:absolute;TOP:60px" from="0,0" to="19.5pt,-22.5pt" strokecolor="black" strokeweight="1pt">
</v:line>
<v:line style="Z-INDEX:1017;LEFT:436px;POSITION:absolute;TOP:30px" from="0,0" to="11.25pt,34.5pt" strokecolor="black" strokeweight="1pt">
</v:line>
<v:line style="Z-INDEX:1018;LEFT:451px;POSITION:absolute;TOP:76px" from="0,0" to="15.75pt,-32.25pt" strokecolor="black" strokeweight="1pt">
</v:line>
<v:line style="Z-INDEX:1019;LEFT:472px;POSITION:absolute;TOP:33px" from="0,0" to="8.25pt,41.25pt" strokecolor="black" strokeweight="1pt">
</v:line>
<v:line style="Z-INDEX:1020;LEFT:483px;POSITION:absolute;TOP:88px" from="0,0" to="60pt,-42pt" strokecolor="black" strokeweight="1pt">
</v:line>
<v:line style="Z-INDEX:1021;LEFT:563px;POSITION:absolute;TOP:32px" from="0,0" to="-37.5pt,56.25pt" strokecolor="black" strokeweight="1pt">
</v:line>
<v:line style="Z-INDEX:1022;LEFT:513px;POSITION:absolute;TOP:107px" from="0,0" to="89.25pt,-57pt" strokecolor="black" strokeweight="1pt">
</v:line>
<v:line style="Z-INDEX:1023;LEFT:632px;POSITION:absolute;TOP:31px" from="0,0" to="-59.25pt,87pt" strokecolor="black" strokeweight="1pt">
</v:line>
<v:line style="Z-INDEX:1026;LEFT:153px;POSITION:absolute;TOP:44px" from="0,0" to="11.25pt,60.75pt" strokecolor="black" strokeweight="1pt">
</v:line>
<v:line style="Z-INDEX:1027;LEFT:168px;POSITION:absolute;TOP:125px" from="0,0" to="-91.5pt,-72.75pt" strokecolor="black" strokeweight="1pt">
</v:line>
<v:line style="Z-INDEX:1028;LEFT:46px;POSITION:absolute;TOP:28px" from="0,0" to="1in,95.25pt" strokecolor="black" strokeweight="1pt">
</v:line>
<v:line style="Z-INDEX:1029;LEFT:142px;POSITION:absolute;TOP:155px" from="0,0" to="0,0" strokecolor="black" strokeweight="1pt">
</v:line>

skangming 2003-10-28
  • 打赏
  • 举报
回复
GZ
lovehwq21 2003-10-28
  • 打赏
  • 举报
回复
源码二

发送数据程序
<HTML><HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD><BODY>
<form method=post name="form1" action=mschart.asp>
<INPUT type="submit" value="发送" id=submit1 name=submit1>
<!
chtitle 标题
rcount 列数
ccount 行数
rc_type 排列方式(1 以行方式,2以列方式)
rc_data 数据
rname 列名数组
cname 行名数组>
<input type="hidden" value="CoolFatMan的成长里程" name=chtitle>
<input type="hidden" value=3 name=rcount>
<input type="hidden" value=2 name=ccount>
<input type="hidden" value=1 name=rc_type>
<input type="hidden" value="1993" name=rname>
<input type="hidden" value="1996" name=rname>
<input type="hidden" value="1999" name=rname>
<input type="hidden" value="身高" name=cname>
<input type="hidden" value="体重" name=cname>
<input type="hidden" value=179 name=rc_data>
<input type="hidden" value=160 name=rc_data>
<input type="hidden" value=180 name=rc_data>
<input type="hidden" value=170 name=rc_data>
<input type="hidden" value=182 name=rc_data>
<input type="hidden" value=182 name=rc_data>
</form></BODY></HTML>


显示数据程序 mschart.asp
<%@ Language=VBScript %>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>
<!--
function window_onload() {
t=0;
mschart1.TitleText = document.form1.chtitle.value;
mschart1.ShowLegend =true;
mschart1.ColumnCount =document.form1.ccount.value;
mschart1.RowCount =document.form1.rcount.value;
for (i=0;i<document.form1.rcount.value;i++)
{for (j=0;j<document.form1.ccount.value;j++)
{ mschart1.Row=i+1;
mschart1.Column=j+1;
if (document.form1.ccount.value>1)
mschart1.ColumnLabel =document.form1.cname(j).value;
else
mschart1.ColumnLabel =document.form1.cname.value;
if ((document.form1.rcount.value*document.form1.ccount.value)>1)
mschart1.Data=document.form1.rc_data(t).value;
else
mschart1.Data=document.form1.rc_data.value;
t++;
}
if (document.form1.rcount.value>1)
mschart1.RowLabel =document.form1.rname(i).value ;
else
mschart1.RowLabel =document.form1.rname.value ;
}
}

function select1_onchange() {
mschart1.chartType =select1.value
mschart1.Plot
}
//-->
</SCRIPT>
<TITLE>数据显示图</TITLE>
</HEAD>
<BODY LANGUAGE=javascript onload="return window_onload()">
<object 此处插入mschart activex控件>
<BR>
显示方式
<SELECT id=select1 name=select1 LANGUAGE=javascript onchange="return select1_onchange()">
<OPTION value=1>二维直方图</OPTION>
<OPTION value=0>三维直方图</OPTION>
<OPTION value=3>二维折线图</OPTION>
<OPTION value=2>三维折线图</OPTION>
<OPTION value=5>二维面积图</OPTION>
<OPTION value=4>三维面积图</OPTION>
<OPTION value=14>饼图</OPTION></SELECT>
<!
chtitle 标题
rcount 列数
ccount 行数
rc_type 排列方式(1 以行方式,2以列方式)
rc_data 数据
rname 列名数组
cname 行名数组>
<form name=form1 id=form1>
<% for i=1 to Request.Form("rcount")%>
<input type="hidden" name=rname id=rname value=<%=Request.Form("rname")(i)%>>
<%next%>
<% for i=1 to Request.Form("ccount")%>
<input type="hidden" name=cname id=cname value=<%=Request.Form("cname")(i)%>>
<%next%>
<input type="hidden" name=rcount id=rcount value=<%=Request.Form("rcount")%>>
<input type="hidden" name=chtitle id=chtitle value=<%=Request.Form("chtitle")%>>
<input type="hidden" name=ccount id=ccount value=<%=Request.Form("ccount")%>>
<%if Request.Form("rc_type")=1 then%>
<%for i=1 to Request.Form("rcount")*Request.Form("ccount")%>
<input type="hidden" name=rc_data id=rc_data value=<%=Request.Form("rc_data")(i)%>>
<%next%>
<%else%>
<%for j=1 to Request.Form("rcount")%>
<%for i=1 to Request.Form("ccount")%>
<input type="hidden" name=rc_data id=rc_data value=<%=Request.Form("rc_data")((i-1)*Request.Form("rcount")+j)%>>
<%next%>
<%next%>
<%end if%>
</form></BODY></HTML>
lovehwq21 2003-10-28
  • 打赏
  • 举报
回复
这有源码一

<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,"viloet")
}
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) //画横线
{
rs = "<table style='top:"+y0+";left:"+x0+";position:absolute'><td bgcolor="+color+" height=3 width="+Math.abs(x1-x0)+"></td></table>";
}
else if (x0 == x1) //画竖线
{
rs = "<table style='top:"+y0+";left:"+x0+";position:absolute'><td bgcolor="+color+" width=1 height="+Math.abs(y1-y0)+"></td></table>";
}
else
{
var lx = x1-x0
var ly = y1-y0
var l = Math.sqrt(lx*lx+ly*ly)
rs = new Array();
for (var I=0;I<l;I+=1)
{
var p = I/l;
var px = x0 + lx*p;
var py = y0 + ly*p;
rs[rs.length] = "<table style='top:"+py+";left:"+px+";position:absolute'><td bgcolor="+color+" height=3></td></table>";
}
rs = rs.join("");
}
return rs
}
function drawRectangle(x0,y0,x1,y1,color)
{
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 "<table style='top:"+y0+";left:"+x0+";position:absolute'><td bgcolor="+color+" width="+(x1-x0)+" height="+(y1-y0)+"></td></table>";
}
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;
for (var I=startAngle;I<endAngle;I+=(1/radius))
{
var dx = Math.sin(I)*radius+x0;
var dy = Math.cos(I)*radius+y0;
rs[rs.length] = "<table style='top:"+dy+";left:"+dx+";position:absolute'><td bgcolor="+color+" height=3></td></table>";
}
return (rs.join(""));
}
function drawCurve()
{
var rs = new Array();
for (var I=0;I<2*Math.PI;I+=.02)
{
var x = 300-Math.sin(I)*100
var y = 300-Math.cos(I)*100
rs[rs.length] = "<table style='top:"+x+";left:"+(I*100+90)+";position:absolute'><td bgcolor=blue height=3></td></table>";
rs[rs.length] = "<table style='top:"+y+";left:"+(I*100+90)+";position:absolute'><td bgcolor=violet height=3></td></table>";
}
return rs.join("");
}
//-->
</SCRIPT>
</body>
</html>
lovehwq21 2003-10-28
  • 打赏
  • 举报
回复
http://www.shotgraph.com 这个有帮助文档,也有例程、源码

http://61.172.255.65/dvbbs/t3/AspGraphic.rar 这个是源码
heilang4819 2003-10-27
  • 打赏
  • 举报
回复
偶的邮箱mafubo@zeloco.com,楼上的可以把代码给偶一份嘛?万分感谢!!!!
TC_p 2003-10-27
  • 打赏
  • 举报
回复
谢谢 lovehwq21(winson) ,我的Email是tc15@tom.com
dick8125 2003-10-23
  • 打赏
  • 举报
回复
有VML代码
连接数据库不会自己写啊
反正人家是给你函数的
你钻牛角尖干什么?
lovehwq21 2003-10-23
  • 打赏
  • 举报
回复
楼主??
chang1216 2003-10-22
  • 打赏
  • 举报
回复
谢谢!changjian2008@hotmail.com 谢谢这位大哥!
感谢ar7_top(黑白呸,男生女生呸)我就是要这么实现。就是这个意思!
lovehwq21 2003-10-22
  • 打赏
  • 举报
回复
楼主,我刚做了一个跟你一样的东东,如果你需要,我可以发给你啊,给个EMAIL来
ar7_top 2003-10-22
  • 打赏
  • 举报
回复
要显示实时数据,用BS模式本来就不合适
你做好图形了在叶面里面加上自动刷新就行了
不过你别指望能够很实时,五秒钟刷新一次应该就不错了
太快了可能会你前一次还没有刷完第二次刷新就开始了
那就没有办法显示内容了
chang1216 2003-10-22
  • 打赏
  • 举报
回复
可是我要连接数据库显示实时数据。我该怎么办

求大家帮帮忙!谢谢了!解决给大分
lovehwq21 2003-10-21
  • 打赏
  • 举报
回复
楼主,你只是画曲线是吧,就是那种多点连接的折线,对吗?
liuruhong 2003-10-21
  • 打赏
  • 举报
回复
如果安装了Office,你可以参考一下OWC(Office Web Component)的SDK,用那个组件来划图大部分够用了
chang1216 2003-10-21
  • 打赏
  • 举报
回复
楼上的两位兄台 我从来没有做过曲线的程序。请说的详细点!谢谢了!问题解决我给加分!
lions911 2003-10-21
  • 打赏
  • 举报
回复
LIUQINYI(宝贝)

做过一个VML的类,很好用!

可以从数据库读出数据,传参数给类,然后每秒刷新一下网页

就能得到实时的曲线
qdubit 2003-10-21
  • 打赏
  • 举报
回复
服务器端使用com,客户端使用vml
chang1216 2003-10-21
  • 打赏
  • 举报
回复
楼上的兄台!请问你的三个例子能连接数据库吗?我现在急需这样的代码!连接数据库!做表现锅炉实时数据的曲线图。谢谢!
subzero 2003-10-21
  • 打赏
  • 举报
回复
dhtml足可
加载更多回复(9)

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧