javascript+DHTML 画图(1)

javascript + DHTMl 画图(一)

该图形库使用了 DHTML 和 Javascript 技术,它可以画线,圆,椭圆,折线,多边形,矩形。对于一个不太了解 Javascript 的人来说使用这个图形库也是非常容易的,另外,使用这个图形库画出的图形是完全被优化到像素级的!
性能( Performance
在 HTML 中并没有提供类似于线、圆、椭圆或其它非矩形的图形表现元素。在工作区中,我们可以利用、并设置具有背景颜色的 Div (或 Layer )元素,并且把这些 Div 元素缩小到与像素相似的大小,每一个 Div 元素代表了一个像素,然后用 Div 元素在网页上进行绘制。我们在使用这些 Div 模型来画矢量图形的时候,要尽可能避免一些冗余的接连处,看下面的图:
<script type="text/javascript"></script>

 
从 左至右,最左边的是最不好的画法,仔细看一下会发现阶梯状的每一行的连接处都会有一个 Div 连接,这个 Div 是没有用的,应该被删除;中间的画法已经很不错了,但应该再优化一下,以第一行为例:用三个 Div 表现水平的一行是多余的,应合为一个,同样垂直方向的 Div 也应合并(例如阶梯的末尾)。
按 Walter Zorn 所言,在画矢量图形时为获得更好的性能,并尽可能避免上述的一些冗余,他用了最好、最快速的算法,只用最少、最必要的 Div 元素来绘制图形。
需 要说明的是,不要把这个图形库与用 Java 语言或其它语言开发的图形应用程序相比较,要知道,受基本的 HTML 和浏览器约束,采用 Javascript 脚本语言创建 Div 元素是非常慢的,在这里能达到图形绘制的最优化都已经是最好的结果。在使用这个图形库时,所绘制的图形像素最好不要超过 600 - 1000 像素。
是否应该选择 SVG? 目前具有 SVG 能力的浏览器或使用 SVG 插件的浏览器仍然是少数,所以如果你要画一些简单的矢量图形,使用这个矢量图形库还是一个不错的选择。
★ 浏览器的兼容性
Linux 系统 :
Browsers with Gecko-Engine (Mozilla, Netscape 6+, Galeon), Konqueror 3.0.3 ( 非常慢 ), Netscape 4, Opera 5 and 6.

Windows 系统 :
Gecko-Browsers, IE 4, 5 and 6, Netscape 4, Opera 5, 6 and 7.

说明:如果在网页全部加载完成后,使用这个矢量图形库进行绘制,在 Opera 版本 7 以前的浏览器中不会执行, Netscape 版本 4 也不会执行。相反,当 HTML 页面正在被解析时, 使用这个图形库进行绘制是全部浏览器均能做到的。

 

 

 

在做web开发中,经常会遇到需要 画图的功能,也就是,某些数据需要通过动态的图形来表达,如股票信息、流量统计等。而这些动态的数据本身,都是通过后台或底层的接口获取的,而图形化的表达,则需要在页面中呈现。因此,很多人都遇到了这样的问题。
 
经过搜索,发现,基于java的页面 画图功能,基本可以通过俩种方式实现:jsp和 javascript
通过jsp 画图,目前做的比较好的,是使用开源的JFreeChart库。
JFreeChart是开放源代码站点SourceForge.net上的一个JAVA项目,它主要用来各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。
例如:
 
 
 
JFreeChart的主页与下载是分开的,也就是,其下载是通过sourceforge做的,而有关介绍,则在它自己的主页上: http://www.jfree.org/jfreechart/index.html
具体使用方法,可以参考JFreeChart的有关文档。ibm网站上有篇文章对如何用JFreeChart来 画图作了比较详细的介绍,大家可以参考参考:
 
通过 javascript来进行页面 画图的话,我认为做的比较好的是国外的 walterzorn公司的Walter Zorn所做的一个矢量图形库:wz_jsgraphics.js ,该矢量图形库,通过与 DHTML结合,可以绘制出很漂亮的各种各样的图表,而且是矢量图。
有关这个图形库的介绍,大家可以直接访问这个图形库的介绍页面 http://www.walterzorn.com/jsgraphics/jsgraphics_e.htm
 
该图形库使用了 DHTMLJavascript 技术,它可以画线,圆,椭圆,折线,多边形,矩形。对于一个不太了解 Javascript 的人来说使用这个图形库也是非常容易的。
 
这个图形库的使用方法如下:
 
1、下载并保存这个图形库
到这个地址 http://www.walterzorn.com/scripts/wz_jsgraphics.zip 下载,将解压后的 wz_jagraphics.js 与你的 html 文件放至相同的目录中,如果你的 wz_jagraphics.js 与 html 文件处于不同的目录下,记得在 src=”wz_jsgraphics.js” 中指示 wz_jagraphics.js 的相对路径。
2、包含这个库
插入下面的代码到你的 html 文件的开头部分(在 <head> 和 </head> 之间):
<script type="text/javascript" src="wz_jsgraphics.js"></script>
3、 使用层( div 或 layer )作为画布( canvases )
如果是当页面正被载入时,直接在 html 页面中绘制,那么这个步骤不是必须的。
如果在页面加载完成后绘制,应该设置几个具有绝对坐标的层,作为你的画布,每一个层应该有一个唯一的 id:
<div id="myCanvas" style="position:relative;height:250px;width:100%;"></div>
...
<div id="anotherCanvas" style="position:relative;height:100px;width:300px;"></div>
 
更详细的使用方法,大家可以参考 http://www.walterzorn.com上的说明,国内的论坛也有关于如何使用的一些文章,如: javascript + DHTMl 画图,有空,大家自己看看吧。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值