怎么在网页上做图表? 不能用applet。不是每个用户那里都装有JVM的。不过可以用vml。关键是我不会。谁有示范代码不? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 How to Use VML on Web Pageshttp://msdn.microsoft.com/workshop/author/vml/ref/default.asp?frame=true 恕我孤陋寡闻,SVG是什么东东? 建议使用 VML , SVG 虽然强大,但并不没有普及... SVG=Scalable Vector Graphics可扩缩性矢量图形,是工业标准,但据说MOZILLA支持VML是微软的技术,但不是工业标准,IE支持 http://www.chinavisual.com/?r=viewArticle&id=3047利用ActiveX技术画简易饼图 http://www.ccw.com.cn/htm/center/prog/02_3_27_7.asphttp://www.ccw.com.cn/htm/center/prog/02_3_18_5.asp 但 VML 有 W3C 标准 谢谢大家。我自己也正在努力研究这个问题。看来SVG也是不成了,IE6才开始部分支持,中文支持也不好。不管是要客户升级到IE6还是安装插件都是不能被接受的。我现在最头疼的是在用VML画饼图的时候怎么填充用<line>和<arc>圈起来的饼图的颜色?我考虑了一下,要实在没有办法就把饼图都画成多边形了只有,就是速度慢些,而且代码不漂亮,让人觉得我很菜鸟,画个规则图形都要一点一点的描 :-(( 这是B/S的弱项,如果公司有flash人员,可以使用flash来模拟,我们就是这么干的,最近利用flash模拟了多个图形控件和日期控件,前端利用js即可传递参数动态显示各种图形.当然功能没有程序写的那么强大,但是工作量相对较少,不用在服务器端注册,显示快速等等优点,而且技术上并不是很难 唉,一向都不会flash的。觉得那些拖来拉去的不像程序员干的活。现在我觉得自己用vml已经差不多可以解决了,但是在画的点比较多的时候速度变的很慢。再研究几天,要是能改的比较好了我自己贴出来给大伙看不过这个……怎么给自己分呢? 今天有朋友推荐了一个画方块图的东东http://developer.netscape.com/docs/technote/javascript/graph/它是用一个个的各种颜色的小方块组合出来的。只能画柱图了,不过视觉效果还行。 谁说flash不是程序员干的活!!强烈抗议!! http://www.vmlsource.com/这里有很多关于 VML 的资料!!! http://www.causeway.co.uk/demos/vml/vmlpies.htm这有两个 饼图的例子...我看了好象挺麻烦的.. to: flylyke对不起啊。我只是说我一直有这么个偏见罢了,这不,吃亏了不是。要早学会了哪还这么多麻烦? 谢谢 linhaibo(美洲豹)。那个饼图是用svg做的,我现在暂不考虑。其实vml能做饼图的,只是麻烦了一点。我今天已经做了出来了。 我做的饼图:<html xmlns:v="urn:schemas-microsoft-com:vml"><head> <title>testing VML</title></head><STYLE> v\:* { BEHAVIOR: url(#default#VML) }</STYLE><SCRIPT LANGUAGE="JavaScript"><!--//test( [["A",10],["B",10],["C",10],["D",10],["E",10],["F",10]])function draw2(src) { var ar = new Array(src.length); var sum=0; for (var i=0;i<src.length;i++) sum += src[i][1]; for (var i=0;i<src.length;i++) ar[i]=src[i][1]/sum; var coordsize = 400; var halfcoordsize = 200; var colors = ["#FF0000","#3366FF","#33CC33","#9966FF","#990000","#FF33CC","#006666"] var result = "<center><v:group style='width:300px;height:300px;position:relative;' CoordOrig=='"+(-halfcoordsize)+","+(-halfcoordsize)+"' CoordSize='"+coordsize+","+coordsize+"'>\n" var step =Math.PI/360 ;// var ar = [.2, .1,.2,.2,.3]; var sum=0; for (var i=0;i<ar.length;i++) { var st="0,0 "; for (j=sum;j<sum+Math.PI*2*ar[i]+step; j+= step) st += String(Math.sin(j)*halfcoordsize)+","+ String(Math.cos(j)*halfcoordsize)+" "; st += " 0,0"; result +="<v:PolyLine filled='true' fillcolor='"+colors[i]+"' Points= ' "+st+" ' style='position:relative' Title='"+src[i][0]+":"+src[i][1]+"'/>" sum += Math.PI*2*ar[i]; } //画图例 for (var i=0;i<ar.length;i++) { result += "<v:rect style='Z-INDEX:0;top:"+(i*35-halfcoordsize)+";left:" +(halfcoordsize+50)+";width:30;height:30' strokecolor='white' fillcolor='"+colors[i]+"'></v:rect>" result += "<v:rect style='Z-INDEX:0;top:"+(i*35-halfcoordsize+5)+";left:" +(halfcoordsize+80)+";width:"+src[i][0].length*40+";height:90' strokecolor='white'>" result += "<v:TextBox inset='0,0,0,0' style='font-size:10.2pt;'>"+src[i][0]+"</v:TextBox></v:rect>" } result +="</v:group></center>"; return result; //document.write(result); }//--></SCRIPT><body> <CENTER> <div id=divRect></div><SCRIPT LANGUAGE="JavaScript"><!--document.write(draw2( [["A",10],["B",10],["C",10],["D",10],["E",10],["F",10]]));//--></SCRIPT> </CENTER></body></html> 不错,顺便问一下VML是不是要IE5.5以上才支持? 两个不眠之夜,终于搞定了饼图。虽然问题最后是我自己解决了,不过网友们的支持对我的解决起了很大作用,尤其是linhaibo(美洲豹)的另一篇帖子“关于 VML 的相关资料”(http://www.csdn.net/expert/topic/649/649628.xml?temp=.382992),所以我把这个帖子的分数全部给他。希望linhaibo早日整理好他的vml资料提供给大家下载! 请教各位大侠:js一个让人想死也想不出来的问题 谁有菜单展开的JS代码,我要把test3做成一个收缩展开菜单。 幻灯片代码,并且是连接数据库,点击进入详细页 问个很基础的问题 定义变量! jquery怎样判断多个CheckBox是否被选中, attr只能判断第一个 大家好!请问如何屏蔽IE中ALT+F4! 浏览器ie7.0的javascript问题 关于数组的定义、赋值、取值 难!请教高手!!关于下拉框的提示 请问jquery 的 ajax 的readyState怎么书写; 我整理了一下关于 VML 的相关资料,大家有空瞧瞧。。。 取当前日期是几号怎么取?当前时间是几点钟怎么得到?
http://msdn.microsoft.com/workshop/author/vml/ref/default.asp?frame=true
http://www.ccw.com.cn/htm/center/prog/02_3_18_5.asp
再研究几天,要是能改的比较好了我自己贴出来给大伙看
不过这个……怎么给自己分呢?
http://developer.netscape.com/docs/technote/javascript/graph/它是用一个个的各种颜色的小方块组合出来的。只能画柱图了,不过视觉效果还行。
这有两个 饼图的例子...我看了好象挺麻烦的..
<html xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<title>testing VML</title>
</head>
<STYLE>
v\:* { BEHAVIOR: url(#default#VML) }
</STYLE><SCRIPT LANGUAGE="JavaScript">
<!--
//test( [["A",10],["B",10],["C",10],["D",10],["E",10],["F",10]])
function draw2(src)
{
var ar = new Array(src.length);
var sum=0;
for (var i=0;i<src.length;i++)
sum += src[i][1];
for (var i=0;i<src.length;i++)
ar[i]=src[i][1]/sum;
var coordsize = 400;
var halfcoordsize = 200;
var colors = ["#FF0000","#3366FF","#33CC33","#9966FF","#990000","#FF33CC","#006666"]
var result = "<center><v:group style='width:300px;height:300px;position:relative;' CoordOrig=='"+(-halfcoordsize)+","+(-halfcoordsize)+"' CoordSize='"+coordsize+","+coordsize+"'>\n"
var step =Math.PI/360 ;
// var ar = [.2, .1,.2,.2,.3];
var sum=0;
for (var i=0;i<ar.length;i++)
{
var st="0,0 ";
for (j=sum;j<sum+Math.PI*2*ar[i]+step; j+= step)
st += String(Math.sin(j)*halfcoordsize)+","+ String(Math.cos(j)*halfcoordsize)+" ";
st += " 0,0";
result +="<v:PolyLine filled='true' fillcolor='"+colors[i]+"' Points= ' "+st+" ' style='position:relative' Title='"+src[i][0]+":"+src[i][1]+"'/>"
sum += Math.PI*2*ar[i];
}
//画图例
for (var i=0;i<ar.length;i++)
{
result += "<v:rect style='Z-INDEX:0;top:"+(i*35-halfcoordsize)+";left:" +(halfcoordsize+50)+";width:30;height:30' strokecolor='white' fillcolor='"+colors[i]+"'></v:rect>"
result += "<v:rect style='Z-INDEX:0;top:"+(i*35-halfcoordsize+5)+";left:" +(halfcoordsize+80)+";width:"+src[i][0].length*40+";height:90' strokecolor='white'>"
result += "<v:TextBox inset='0,0,0,0' style='font-size:10.2pt;'>"+src[i][0]+"</v:TextBox></v:rect>"
}
result +="</v:group></center>";
return result;
//document.write(result);
}//-->
</SCRIPT><body>
<CENTER>
<div id=divRect></div>
<SCRIPT LANGUAGE="JavaScript">
<!--
document.write(draw2( [["A",10],["B",10],["C",10],["D",10],["E",10],["F",10]]));
//-->
</SCRIPT>
</CENTER>
</body>
</html>