以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 SVG/GML/VRML/X3D/XAML 』  (http://bbs.xml.org.cn/list.asp?boardid=21)
----  怎么实现动态给SVG图形赋坐标及相关参数?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=21&rootid=&id=16745)


--  作者:linchw
--  发布时间:4/7/2005 6:05:00 PM

--  怎么实现动态给SVG图形赋坐标及相关参数?
<svg width="400" height="200">
<g id="rect1">
<rect id="rectangle"  x="50"  y="50"  width="100" height="50" style="fill:green"/>
</g>
</svg>
如上例所示画一个矩形,起始点(50,50),宽100,高50。
现在怎么实现:起始点(x,y),宽为a,高为b,(x,y,a,b为可变参数)
即通过输入坐标,宽,高参数,来画一矩形。
怎么实现这种相当于类对象的封装一样的功能?请大家指点,谢谢!
--  作者:mi9
--  发布时间:4/7/2005 6:24:00 PM

--  
function createRect(idVal,x,y,wVal,hVal){
     svgRect = svgDoc.createElement("rect");
     svgRect.setAttribute("id","idVal")
     svgRect.setAttribute("width",wVal);
     svgRect.setAttribute("height",hVal);
     svgRect.setAttribute("x",x);
     svgRect.setAttribute("y",y);
     svgDoc.getElementById("rect1").appendChild(svgRect);
}

你说的是这个意思吗?大概可以的吧


--  作者:kerons
--  发布时间:4/7/2005 6:35:00 PM

--  
我现在也面临这样的问题,
要是是rect,circle之类的图形还好说

要是遇到属性没有单独分离的,比如象path ,plogon的改怎么办?


--  作者:mi9
--  发布时间:4/7/2005 6:40:00 PM

--  
你是想创建一个,还是对已有的进行修改呢
--  作者:kerons
--  发布时间:4/7/2005 6:46:00 PM

--  
我的是已经创建了,需要动态的修改,比如rect的高是从数据库中取出来的,

mi9,我可以加你的QQ讨论吗?我的QQ 9973205


--  作者:mi9
--  发布时间:4/7/2005 6:56:00 PM

--  
rect的修改用上面的那个应该就可以了吧

类似于polyline,polygon这样的,
var vPoint = new Array(0,0,100,100,200,200);
var linePoints = vPoint .join(",");
newpolygon.setAttribute("points",linePoints);

这样应该可以了吧,至少我是这么做的,有可能是个笨办法


--  作者:linchw
--  发布时间:4/7/2005 7:21:00 PM

--  
非常感谢!
--  作者:linchw
--  发布时间:4/7/2005 7:31:00 PM

--  
我现在面临的问题是这样的:
在面向对象的C/S编程里面,我们定义各种图形的类,如(圆,直线,其它形状的图形),然后从数据库中读出静态的坐标及相关属性(如颜色),然后进行绘图;
现在B/S中,用SVG生成图形时,如何实现坐标的赋值,及绘图,请求是在服务端生成SVG文件,还是在浏览器端生成?系统开发环境为.NET平台。
--  作者:mi9
--  发布时间:4/8/2005 9:19:00 AM

--  
我不太清楚标准做法是什么,但至少你说的这些功能在客户端应该都可以实现的,服务器端最多只需要负责将要画什么,在哪里画的数据传给前台就可以了,画法用类似于上面的两个函数就可以了。(我是大多数时间是做客户端的所以都是站在我的立场上来说的,不一定是适合你的方法,仅作参考,不过你说的这些功能我用vml做过纯客户端的实时绘图,所以用svg的话应该也没问题的)
--  作者:keeponline
--  发布时间:4/11/2005 1:44:00 PM

--  
我想问一下,如果是实时显示的话,更新数据文件,SVG需要怎么样才能更新,是用页面的刷新就可以了?
--  作者:mi9
--  发布时间:4/11/2005 5:10:00 PM

--  
应该是不用页面刷新的,当有新值之后,就会在页面上面反映出来了
--  作者:henrybenben
--  发布时间:4/13/2005 10:08:00 PM

--  
多谢指点,又学到了一点东西!
--  作者:liujun808
--  发布时间:9/2/2005 2:58:00 PM

--  
楼主,你的问题解决了吗?我也是用.net和svg开发的,我是这样做的,我在客户端用鼠标点击,然后把值传到服务器端,然和根据xml的dom,把相应的坐标添加到svg文件中,最后在刷新显示!
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
125.000ms