CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

如何用asp画曲线

楼主limingfang(lmf)2001-09-18 11:58:44 在 Web 开发 / ASP 提问

我的主机上有一个数据库,想通过网络访问,并把数据以曲线的形式显示出来,是否可行,如何做 问题点数:60、回复次数:7Top

1 楼zhangdawei_1976(zdw)回复于 2001-09-18 14:32:48 得分 15

用javascript:  
  <html>  
  <head>  
  <title>JavaScript绘图</title>  
  <script   language="JavaScript">  
  IE4   =   !   (navigator.appVersion.charAt(0)   <   "4"   ||   navigator.appName   ==   "Netscape")  
   
  var   xo=0  
  var   yo=0  
  var   Ox   =   -1  
  var   Oy   =   -1  
   
  var   rad   =   Math.PI/180  
  var   maxY   =   400  
  var   color   =   "red"  
   
  function   print(str)   {  
      document.write(str)  
  }  
   
  function   orgY(y)   {  
      return   maxY-y  
  }  
  function   outPlot(x,y,w,h)   {  
      print('<span   style="position:absolute;left:'+x+';top:'+y+';height:'+h+';width:'+w+';font-size:1px;background-color:'+color+'"></span>')  
  }  
   
  function   Plot(x,y)   {  
      outPlot(x,y,1,1)  
      if(Ox>=0   ||   Oy>=0)   {  
          ShowLine(Ox,Oy,x-Ox,y-Oy)  
      }  
      Ox   =   x  
      Oy   =   y  
  }  
   
  function   ShowLine(x,y,w,h)   {  
      if(w<0)   {  
          x   +=   w  
          w   =   Math.abs(w)  
      }  
      if(h<0)   {  
          y   +=   h  
          h   =   Math.abs(h)  
      }  
      if(w<1)   w=1  
      if(h<1)   h=1  
      outPlot(x,y,Math.round(w),Math.round(h))  
  }  
   
  function   LineTo(x,y)   {  
      Line(xo,yo,x,y)  
  }  
   
  function   sign(n)   {  
      if(n>0)  
          return   1  
      if(n<0)  
          return   -1  
      return   n  
  }  
   
  function   Line(x1,y1,x2,y2)   {  
      x2   =   Math.round(x2)  
      y2   =   Math.round(y2)  
      xo   =   x2  
      yo   =   y2  
      y1   =   orgY(y1)  
      y2   =   orgY(y2)  
      var   str   =   ""  
      var   i=0  
   
      var   x   =   x1  
      var   y   =   y1  
      dx   =   Math.abs(x2-x1)  
      dy   =   Math.abs(y2-y1)  
      s1   =   sign(x2-x1)  
      s2   =   sign(y2-y1)  
   
      if(dx==0   ||   dy==0)   {  
          ShowLine(x1,y1,x2-x1,y2-y1)  
          return  
      }  
   
      if(dx>dy)   {  
          temp   =   dx  
          dx   =   dy  
          dy   =   temp  
          key   =   1  
      }else  
          key   =   0  
      e   =   2*dy-dx  
   
      for(i=0;i<dx;i++)   {  
          px   =   0  
          py   =   0  
          Plot(x,y)  
          while(e>=0)   {  
              if(key==1)   {  
                  x   +=   s1  
                  px   +=   s1  
              }else   {  
                  y   +=   s2  
                  py   +=   s2  
              }  
              e   =   e-2*dx  
          }  
          if(key==1)  
              y   +=   s2  
          else  
              x   +=   s1  
          e   =   e+2*dy  
      }  
  }      
   
  function   MoveTo(x,y)   {  
      Ox   =   Oy   =   -1  
      xo   =   Math.round(x)  
      yo   =   Math.round(y)  
  }  
   
  //   圆  
  function   Cir(x,y,r)   {  
      MoveTo(x+r,y)  
      for(i=0;i<=360;i+=5)   {  
          LineTo(r*Math.cos(i*rad)+x,r*Math.sin(i*rad)+y)  
      }  
  }  
  //   弧形  
  function   Arc(x,y,r,a1,a2)   {  
      MoveTo(r*Math.cos(a1*rad)+x,r*Math.sin(a1*rad)+y)  
      for(i=a1;i<=a2;i++)   {  
          LineTo(r*Math.cos(i*rad)+x,r*Math.sin(i*rad)+y)  
      }  
  }  
  //   扇形  
  function   Pei(x,y,r,a1,a2)   {  
      MoveTo(x,y)  
      for(var   i=a1;i<=a2;i++)   {  
          LineTo(r*Math.cos(i*rad)+x,r*Math.sin(i*rad)+y)  
      }  
      LineTo(x,y)  
  }  
  //   弹出扇形  
  function   PopPei(x,y,r,a1,a2)   {  
      dx   =   r*Math.cos((a1+(a2-a1)/2)*rad)/10  
      dy   =   r*Math.sin((a1+(a2-a1)/2)*rad)/10  
      x   +=   dx  
      y   +=   dy  
      MoveTo(x,y)  
      for(var   i=a1;i<=a2;i++)   {  
          LineTo(r*Math.cos(i*rad)+x,r*Math.sin(i*rad)+y)  
      }  
      LineTo(x,y)  
  }  
   
  //   矩形  
  function   Rect(x,y,w,h)   {  
      MoveTo(x,y)  
      LineTo(x+w,y)  
      LineTo(x+w,y+h)  
      LineTo(x,y+h)  
      LineTo(x,y)  
  }  
   
  //   准星  
  function   zhunxing(x,y)   {  
      var   ox   =   xo  
      var   oy   =   yo  
      var   oColor   =   color  
      color   =   "#000000"  
      Line(x-5,y,x+6,y)  
      Line(x,y-6,x,y+5)  
      print('<span   style="position:absolute;font-size:10pt;left:'+(x+5)+';top:'+orgY(y+5)+';">['+x+','+y+']</span>')  
      color   =   oColor  
      xo   =   ox  
      yo   =   oy  
  }  
  //   标注  
  function   biaozhuStr(x,y,s)   {  
      return   '<span   style="position:absolute;font-size:10pt;left:'+x+';top:'+orgY(y)+';">'+s+'</span>'  
  }  
  function   biaozhu(x,y,s,t)   {  
      var   ox   =   xo  
      var   oy   =   yo  
      var   oColor   =   color  
      point   =   "p01.gif"  
      if(t==1)   {  
            print(biaozhuStr(x-5,y+6,"·"+s))  
      }  
      if(t==2)   {  
          print(biaozhuStr(xo+x*Math.cos(y*rad)-10,yo+x*Math.sin(y*rad),s))  
      }  
      color   =   oColor  
      xo   =   ox  
      yo   =   oy  
  }  
  </script>  
  </head>  
   
  <body>  
  <table   border="0"   width="100%">  
      <tr>  
          <td   width="100%"   style="font-family:   方正舒体;   font-size:   18pt;   color:   #FF0000"   class="t1">JavaScript绘图</td>  
      </tr>  
      <tr>  
          <td   width="100%"   style="font-family:   幼圆;   font-size:   12pt;   color:   #008000"   class="t2">&nbsp;&nbsp;&nbsp;    
              如果需要在网页上提供图形化的资料,通常是将其制作成图片,但这样一来网络上的开销就太大了。有什么办法呢?这里向你提供一组JavaScript函数,来解决这一问题。虽然简单了点,但是对画点线图来说还是绰绰有余的!</td>  
      </tr>  
  </table>  
   
  <script>  
  if(IE4)   {  
   
  //   基本图形  
  color   =   "maroon"  
  Cir(50,40,20)  
  Arc(100,40,20,60,120)  
  Pei(150,60,40,240,300)  
  Rect(200,20,40,40)  
   
  //   折线图  
  color   =   "#FF0000"  
  var   jd   =   new   Array(  
  203,232,277,223,271,234,273,284,276,250,267,280  
  )  
  MoveTo(30,jd[0]-40)  
  biaozhu(xo,yo,jd[0])  
  for(i=1;i<jd.length;i++)   {  
      LineTo(i*30+30,jd[i]-40)  
      biaozhu(xo,yo,jd[i],1)  
  }  
  color   =   "#C0C0C0"  
  Line(30,140,i*30+30,140)  
  Line(30,140,30,260)  
   
  //   饼图  
  color   =   "#00FF00"  
  var   gc   =   new   Array(  
  150,120,200,180,180  
  )  
  var   s   =   0  
  var   m   =   0  
  var   n   =   0  
  for(i=0;i<gc.length;i++)   {  
      s   +=gc[i]  
      if(gc[i]   >   m)   {  
          m   =   gc[i]  
          n   =   i  
      }  
  }  
  var   k   =   s/360  
  var   mm   =   0  
  var   a   =0  
  for(i=0;i<gc.length;i++)   {  
      b   =   Math.round((gc[i]+mm)/k)  
      if(i==n)  
          PopPei(600,150,100,a,b)  
      else  
          Pei(600,150,100,a,b)  
      biaozhu(60,a+(b-a)/2,Math.round(gc[i]/s*100)+"%",2)  
      mm   =   mm+gc[i]  
      a   =   b  
  }  
   
  //   十字标注  
  MoveTo(280,20)  
  zhunxing(xo,yo)  
   
  }else   {  
      document.write("<p>     </p><table   bgcolor=#FF0000><tr><td><font   color=#FFFF00>对不起!您的浏览器不能支持该页的某些功能,请换用IE4.0以上版本的浏览器!谢谢!</font></td></tr></table>")  
  }  
  </script>  
   
  </body>  
  </html>  
  Top

2 楼yousoft(悠游在线)回复于 2001-09-18 18:04:09 得分 0

用ASP组件吧Top

3 楼longyear(龙也爱人:我用幻觉触摸你那遥远的美丽…)回复于 2001-09-18 20:43:22 得分 0

对!用组件!Top

4 楼dippa(帝吧)回复于 2001-09-18 23:46:05 得分 0

用组件吧Top

5 楼liaogs(夜归人)回复于 2001-09-19 08:57:50 得分 30

上面那个虽然有点象,但也太简单了吧!我建议你用mschart组件吧!Top

6 楼rockytan(rockytan)回复于 2001-09-19 09:35:02 得分 0

gzTop

7 楼viking(准备创业的海盗)回复于 2001-09-19 11:15:29 得分 15

 
   
  有许多画图的组件的,你应该搜索一下,它们的方法调用也很简单!  
   
  Top

相关问题

  • 如何画曲线?
  • 在jsp中如何画统计曲线
  • java如何画曲线图?在线等!!
  • 在VB6.0中如何画曲线
  • 如何画曲线图(在线等待)
  • 画曲线
  • 100分------求在ASp中画曲线图的程序示例!!!!!!!!!
  • 请问如何在ASP中输出像EXCEL那样曲线图?
  • 画WEB曲线图,如何画,大家帮个忙,急!!
  • 画WEB曲线图,如何画,大家帮个忙,急!!

关键词

  • javascript
  • 画
  • 提供

得分解答快速导航

  • 帖主:limingfang
  • zhangdawei_1976
  • liaogs
  • viking

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo