以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 SVG/GML/VRML/X3D/XAML 』 (http://bbs.xml.org.cn/list.asp?boardid=21) ---- [原创]获取动态数据显示的柱形图 (http://bbs.xml.org.cn/dispbbs.asp?boardid=21&rootid=&id=13683) |
-- 作者:zhiyu-2000 -- 发布时间:1/17/2005 9:33:00 AM -- [原创]获取动态数据显示的柱形图 你们可以看看效果如何,点击柱形还可以改变颜色。 我现在做的系统是VC++编码的,我的这段svg代码也是VC++生成的,我这里的动态数据是随机获得的,但我们的系统要求根据系统中指定的动态变量显示柱形图,我不知道如何使javascript与我的系统通讯获得系统中的动态数据变量,大家出出主意吧! |
-- 作者:zhiyu-2000 -- 发布时间:1/17/2005 9:33:00 AM -- <?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> <svg width="1000" height="1000" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" onload="setheight()"> <script type="text/javascript"> <![CDATA[ var svgRoot=document.documentElement; var redVal=0; var greenVal=0; var blueVal=0; function setColor(evt) { var target=evt.getTarget(); redVal=Math.round(Math.random()*255); greenVal=Math.round(Math.random()*255); blueVal=Math.round(Math.random()*255); target.setAttribute("fill","rgb("+redVal+","+greenVal+","+blueVal+")"); } function setheight() { var rect1,long,long1; rect1=svgRoot.getElementById("rect1"); long=Math.round(Math.random()*200); rect1.setAttribute("height",long); rect1.setAttribute("y",600-long); setTimeout("setheight()",1000); } //]]> </script> <g> <line x1="100" y1="100" x2="100" y2="600" stroke="rgb(0,0,0)"/> <line x1="100" y1="600" x2="600" y2="600" stroke="rgb(0,0,0)"/> <line x1="100" y1="350" x2="600" y2="350" /> <line x1="100" y1="100" x2="600" y2="100" /> <text x="98" y="105" text-anchor="end"> 1000 </text> <text x="98" y="355" text-anchor="end"> 500 </text> <rect id="rect1" x="105" y="400" height="200" width="40" onclick="setColor(evt)"/> <rect x="150" y="200" height="400" width="40" onclick="setColor(evt)"/> <rect x="195" y="300" height="300" width="40" onclick="setColor(evt)"/> <rect x="240" y="100" height="500" width="40" onclick="setColor(evt)"/> <rect x="285" y="120" height="480" width="40" onclick="setColor(evt)"/> <rect x="330" y="500" height="100" width="40" onclick="setColor(evt)"/> <rect x="375" y="440" height="160" width="40" onclick="setColor(evt)"/> <defs> <polyline id="polyline" points="97,107 100,100 103,107"/> </defs> <use xlink:href="#polyline"/> <use xlink:href="#polyline" transform="translate(700,500) rotate(90)"/> </g> </svg> |
-- 作者:rido -- 发布时间:1/17/2005 4:39:00 PM -- 如果数据与服务器同一台机,可以将数据存成XML,使用getURL()载入,parseXML()读出。 var svgdoc = "" |
-- 作者:zhiyu-2000 -- 发布时间:1/18/2005 9:36:00 AM -- 谢谢指导! 不过我还不是很懂: new_node = parseXML(data.content,svgdoc)是不是把test.xml中的数据放在svg文档新生成的节点中了? 那这个新节点new_node是一个什么节点? 我怎样把这个数据从这个节点中取出? 请多多指教! |
-- 作者:rido -- 发布时间:1/18/2005 10:00:00 AM -- 写成 new_node = parseXML(data.content) 也无问题。 new_node 就如 test.xml的根节点,可用dom api将其... |
-- 作者:zhiyu-2000 -- 发布时间:1/20/2005 9:16:00 AM -- 我大概理解了, 就是说: 我把要传递的数据存为test.xml中,用用getURL()载入,parseXML()读出到new_node 根节点中,再通过DOM把根节点下的数据拿出来使用,应该是这样吧! 如果理解的不对,还请指教! |
-- 作者:qchpanna -- 发布时间:12/15/2005 11:02:00 AM -- 请问你的动态数据显示是怎么实现的? [[size=1]B]请问你的动态数据显示是怎么实现的?[/B[/size]] |
-- 作者:zhiyu-2000 -- 发布时间:12/15/2005 4:56:00 PM -- 我的想法是把从服务器端读取的数据存成xml格式,然后就像rido说的那样,用 getURL()和 parseXML() 的方法把这个包含数据的xml文件加入到svg的DOM树中,然后通过DOM API 读取这些数据来动态更改svg的内容。只是个想法而已,没有具体实现,正在往这方面努力。是否有别的方法,大家切磋一下! |
-- 作者:jellifier -- 发布时间:12/26/2005 12:00:00 PM -- zhiyu-2000 给出的那段代码我试了下,说是SVG没有根元素是什么原因啊 我对SVG还不是很了解的说。现在也想做从数据库读取的数据来控制SVG元件的生成 上面提到的存成XML格式,具体是什么样子的呢,有没有人解释一下啊 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
4,531.250ms |