网站建设| 数据库类| 图形图象| 程序设计| 现代办公| 操作系统| 考试认证| 网络技术| 软件工程| 电脑相关| 文学作品
网站开发| 网页制作| 操作系统| 图象图形| 考试认证| 数据库类| 程序设计| 硬件技术| 现代办公| 网络技术| 笑话频道
 
您的位置: 电脑书库首页-> 电脑文摘-> 网站开发-> 其它-> 一组JavaScript绘图函数

一组JavaScript绘图函数
作者:佚名 来源:InterNet 加入时间:2005-4-3
相关文章
  • 在javascript中调用vbscript的函数,构造一个javascript版的trim 函数
  • javascript表单之间的数据传递
  • 一个简单的javascript菜单
  • asp自动生成javascript检验函数
  • 用JavaScript实现利用FLASH嵌入声音
  • Javascript设计漫天雪花
  • Javascript模拟游戏中的弹出菜单效果
  • 利用JAVASCRIPT制作简单动画
  • 首页地址添加到收藏夹(javascript)
  • javascript中如何实现浏览器上的右键菜单
  • 相关书籍:
  • JavaScript 权威指南(第四版)
  • 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">
    如果需要在网页上提供图形化的资料,通常是将其制作成图片,但这样一来网络上的开销就太大了。有什么办法呢?这里向你提供一组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>


    [文章录入员:nancy]

    相关文章
  • 在javascript中调用vbscript的函数,构造一个javascript版的trim 函数
  • javascript表单之间的数据传递
  • 一个简单的javascript菜单
  • asp自动生成javascript检验函数
  • 用JavaScript实现利用FLASH嵌入声音
  • Javascript设计漫天雪花
  • Javascript模拟游戏中的弹出菜单效果
  • 利用JAVASCRIPT制作简单动画
  • 首页地址添加到收藏夹(javascript)
  • javascript中如何实现浏览器上的右键菜单
  • 相关书籍:
  • JavaScript 权威指南(第四版)
  • JavaScript傻瓜指南
  • 本站推荐内容

    近期主机类热搜关键词:
    美国服务器 美国服务器租用 海外服务器租用 国外服务器租用

    其它
    ASP/ASP.NET
    PHP技术
    JSP技术
    XML技术
    CGI/PERL
    WEB服务器
    WordPress专题
    其它
    电脑教程阅读排行
    ·VBScript 函数集
    ·关于SQL语句中的引号问题(VB...
    ·网站建设步骤
    ·网上建站论坛的选择和安装(菜鸟版...
    ·用ASP动态生成JavaScri...
    ·Apache+PHP+MySQL...
    ·用VBScript实现对Wind...
    ·VBScript和JavaScr...
    ·在javascript中调用vb...
    ·一个简单的javascript菜...