当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 用javascript绘图—JS2D函数集

Javascript
javascript动画效果类封装代码
javascript关于复选框的实用脚本代码
javascript使用Dom改变超链接前面文本框的值
javascript select列表内容按字母倒序排序与按列表倒序排列
(兼容ff/ie)td点击背景变色特效
javascript跟随滚动条滚动的层(浮动AD效果)
javascript按指定格式输出文件最后更新时间
javascript实现的一个自定义长度的文本自动换行的函数。
javascript模仿百万格子小的一小段代码
兼容FireFox 用javascript写的一个画图函数
javascript写的一个表单动态输入提示的代码
不错的用resizeTo和moveTo两个函数实现窗口的“打乒乓球”效果
javascript一个判断浏览器类型的函数(类)
不错的用外部Javascript修正特定网页内容
找到了一篇jQuery与Prototype并存的冲突的解决方法
070823更新的一个[消息提示框]组件 兼容ie7
错误剖析之JavaScript的9个陷阱及评点
推荐一些非常不错的javascript学习资源站点
出现“不能执行已释放的Script代码”错误的原因及解决办法
给Javascript数组插入一条记录的代码

Javascript 中的 用javascript绘图—JS2D函数集


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 329 ::
收藏到网摘: n/a

  <script Language="javascript"><br />
/****************** JS2D函数集  *******************<br />
<br />
  作者:neweroica    2003-3-28<br />
<br />
  CopyRight (C) 2003<br />
<br />
  在引用或转载时请保留此版权信息,谢谢!!!<br />
<br />
  本函数集可以单独存成一个js文件:"JS2D.js"<br />
<br />
***************************************************/<br />
<br />
/************* 画点 **************<br />
  x,y     点所在的屏幕坐标(像素)<br />
  color   颜色(字符串值)<br />
  size    大小(像素)<br />
**********************************/<br />
function drawDot(x,y,color,size){<br />
  document.write("<table border='0' cellspacing=0 cellpadding=0><tr><td style='position: absolute; left: "+(x)+"; top: "+(y)+";background-color: "+color+"' width="+size+" height="+size+"></td></tr></table>")<br />
}<br />
<br />
/************* 画直线 **************<br />
  x1,y1   起点所在的屏幕坐标(像素)<br />
  x2,y2   终点所在的屏幕坐标(像素)<br />
  color   颜色(字符串值)<br />
  size    大小(像素)<br />
  style   样式<br />
          =0    实线<br />
          =1    虚线<br />
          =2    虚实线<br />
**********************************/<br />
function drawLine(x1,y1,x2,y2,color,size,style){<br />
  var i;<br />
  var r=Math.floor(Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)));<br />
  var theta=Math.atan((x2-x1)/(y2-y1));<br />
  if(((y2-y1)<0&&(x2-x1)>0)||((y2-y1)<0&&(x2-x1)<0))<br />
    theta=Math.PI+theta;<br />
  var dx=Math.sin(theta);//alert(dx)<br />
  var dy=Math.cos(theta);<br />
  for(i=0;i<r;i++){<br />
    switch(style){<br />
      case 0:<br />
        drawDot(x1+i*dx,y1+i*dy,color,size);<br />
        break;<br />
      case 1:<br />
        i+=size*2;<br />
        drawDot(x1+i*dx,y1+i*dy,color,size);<br />
        break;<br />
      case 2:<br />
        if(Math.floor(i/4/size)%2==0){<br />
          drawDot(x1+i*dx,y1+i*dy,color,size);<br />
        }<br />
        else{<br />
            i+=size*2;<br />
            drawDot(x1+i*dx,y1+i*dy,color,size);<br />
        }<br />
        break;<br />
      default:<br />
        drawDot(x1+i*dx,y1+i*dy,color,size);<br />
        break;<br />
    }<br />
  }<br />
}<br />
<br />
/************* 画实心矩形 **************<br />
  x1,y1   起点(矩形左上角)所在的屏幕坐标(像素)<br />
&n