新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论SVG, GML, X3D, VRML, VML, XAML, AVALON, Batik等基于XML的图形技术,以及有关GIS的应用。
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - 高级XML应用『 SVG/GML/VRML/X3D/XAML 』 → 求助:将多个图元组件化? 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 3588 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 求助:将多个图元组件化? 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     turta 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:14
      积分:120
      门派:XML.ORG.CN
      注册:2005/5/30

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给turta发送一个短消息 把turta加入好友 查看turta的个人资料 搜索turta在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看turta的博客楼主
    发贴心情 求助:将多个图元组件化?

    求高人指点:
    如何将多个基本图元组成一个有实际意义的防真实体,用js/java文件来处理这个实体的一些动作,状态的改变等等?

       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/6/8 10:51:00
     
     keeponline 美女呀,离线,快来找我吧!天秤座1975-10-21
      
      
      威望:4
      等级:大四寒假(收到IBM的Offer啦)
      文章:190
      积分:1150
      门派:W3CHINA.ORG
      注册:2005/1/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给keeponline发送一个短消息 把keeponline加入好友 查看keeponline的个人资料 搜索keeponline在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看keeponline的博客2
    发贴心情 
    用 g元素,定义ID

    ----------------------------------------------
    买书不等于读书,读书不一定要买书。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/6/8 13:37:00
     
     keeponline 美女呀,离线,快来找我吧!天秤座1975-10-21
      
      
      威望:4
      等级:大四寒假(收到IBM的Offer啦)
      文章:190
      积分:1150
      门派:W3CHINA.ORG
      注册:2005/1/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给keeponline发送一个短消息 把keeponline加入好友 查看keeponline的个人资料 搜索keeponline在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看keeponline的博客3
    发贴心情 
    例如
    <g id="aa">
    <rect fill="rgb(1.1.255)" stroke="rgb(0.0.0)" stroke-wideth="1" x="32" y="32" width="44" height="40" />
    <rect fill="rgb(1.1.255)" stroke="rgb(0.0.0)" stroke-wideth="1" x="116" y="32" width="44" height="40" />
    </g>

    ----------------------------------------------
    买书不等于读书,读书不一定要买书。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/6/8 13:41:00
     
     turta 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:14
      积分:120
      门派:XML.ORG.CN
      注册:2005/5/30

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给turta发送一个短消息 把turta加入好友 查看turta的个人资料 搜索turta在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看turta的博客4
    发贴心情 
    我是这么做的,还使用了user—link方式。但是怎么让这样的组件动画可以程序控制(通过js接收数据调整动画)
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/6/8 14:52:00
     
     HainanBeibei 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:0
      积分:60
      门派:XML.ORG.CN
      注册:2005/6/3

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给HainanBeibei发送一个短消息 把HainanBeibei加入好友 查看HainanBeibei的个人资料 搜索HainanBeibei在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看HainanBeibei的博客5
    发贴心情 
    理解您的问题。难度是不是在于定义了这样的一个组合图元后,再利用这个图元创建1000个这样的对象,那我怎么能快速找到我要操作的那个对象(例如第99个对象),并根据该元件的数据来更新这个家伙的图形呢?因为GetElementByID("Obj_name")这个函数用不了了。

    等高手来回答吧!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/6/17 14:47:00
     
     hmilyice_angel 美女呀,离线,快来找我吧!巨蟹座1981-7-9
      
      
      等级:大一新生
      文章:11
      积分:118
      门派:XML.ORG.CN
      注册:2005/7/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给hmilyice_angel发送一个短消息 把hmilyice_angel加入好友 查看hmilyice_angel的个人资料 搜索hmilyice_angel在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看hmilyice_angel的博客6
    发贴心情 

     newobj.setAttributeNS(null,"r",r);
     newobj.setAttributeNS(null,"class",classid);
     return newobj;
    }

    function new_text(id,text,classid,pevent){
     var tdata = svgdoc.createTextNode(text);
     var newobj = svgdoc.createElementNS(svgns, "text");
     newobj.setAttributeNS(null,"id",id);
     newobj.setAttributeNS(null,"class",classid);
     newobj.getStyle.setProperty("pointer-events",pevent);
     newobj.appendChild(tdata);
     return newobj; 
    }

    function new_rect(id,x,y,rx,ry,wid,hei,classid){
     var newobj=svgdoc.createElementNS(svgns,"rect");
     newobj.setAttributeNS(null,"id",id);
     newobj.setAttributeNS(null,"x",x);
     newobj.setAttributeNS(null,"y",y);
     newobj.setAttributeNS(null,"rx",rx);
     newobj.setAttributeNS(null,"ry",ry);
     newobj.setAttributeNS(null,"width",wid);
     newobj.setAttributeNS(null,"height",hei);
     newobj.setAttributeNS(null,"class",classid);
     return newobj;
    }

    function new_line(id,x1,y1,x2,y2,classid){
     var newobj=svgdoc.createElementNS(svgns,"line");
     newobj.setAttributeNS(null,"id",id);
     newobj.setAttributeNS(null,"x1",x1);
     newobj.setAttributeNS(null,"y1",y1);
     newobj.setAttributeNS(null,"x2",x2);
     newobj.setAttributeNS(null,"y2",y2);
     newobj.setAttributeNS(null,"class",classid);
     return newobj;
    }


    /**
    * Draw Line
    * cDis - arc center offset
    * pDis - start&end point offset
    */
    function new_linepath(id,classname,cDis,pDis,x1,y1,x2,y2){
      var oline=svgdoc.createElementNS(svgns,"path");

      var dx=x2-x1;
      var dy=y2-y1;
      //alert(dx + "," + dy);
      var dt=0;
      if(dx==0 && dy==0 || dx==0 && dy>0){
       dt=0;
      }
      else if(dx==0 && dy<0){
       dt=pi;
      }
      else if(dy==0 && dx>0){
       dt=pi/2;
      }
      else if(dy==0 && dx<0){
       dt=pi*3/2;
      }
      else{
       dt=Math.atan(Math.abs(dy)/Math.abs(dx));
      }
      var cx=(x1+x2)/2;
      var cy=(y1+y2)/2;
      var x1,y1,x2,y2,scx,scy;
      if(dx>0 && dy>0){
       x1=x1-pDis*tscale*Math.sin(dt);
       y1=y1+pDis*tscale*Math.cos(dt);
       x2=x2-pDis*tscale*Math.sin(dt);
       y2=y2+pDis*tscale*Math.cos(dt);

       scx=cx-cDis*tscale*Math.sin(dt);
       scy=cy+cDis*tscale*Math.cos(dt);
      }
      if(dx>0 && dy<0){
       x1=x1+pDis*tscale*Math.sin(dt);
       y1=y1+pDis*tscale*Math.cos(dt);
       x2=x2+pDis*tscale*Math.sin(dt);
       y2=y2+pDis*tscale*Math.cos(dt);
       scx=cx+cDis*tscale*Math.sin(dt);
       scy=cy+cDis*tscale*Math.cos(dt);
       //alert(Math.sin(dt) + "," + Math.cos(dt));
       //alert(scx+","+scy);
      }
      if(dx<0 && dy<0){
       x1=x1+pDis*tscale*Math.sin(dt);
       y1=y1-pDis*tscale*Math.cos(dt);
       x2=x2+pDis*tscale*Math.sin(dt);
       y2=y2-pDis*tscale*Math.cos(dt);
       scx=cx+cDis*tscale*Math.sin(dt);
       scy=cy-cDis*tscale*Math.cos(dt);
       //alert(x1+","+y1+","+x2+","+y2);
      }
      if(dx<0 && dy>0){
       x1=x1-pDis*tscale*Math.sin(dt);
       y1=y1-pDis*tscale*Math.cos(dt);
       x2=x2-pDis*tscale*Math.sin(dt);
       y2=y2-pDis*tscale*Math.cos(dt);
       scx=cx-cDis*tscale*Math.sin(dt);
       scy=cy-cDis*tscale*Math.cos(dt);
       //alert(Math.sin(dt) + "," + Math.cos(dt));
       //alert(scx+","+scy);
      }

      y1=y1*(-1);
      y2=y2*(-1);
      scy=scy*(-1);
      
      var ssss="M"+x1+","+y1+" C"+scx+","+scy+" "+scx+","+scy+" "+x2+","+y2;
      oline.setAttributeNS(null,"d",ssss);
      oline.setAttributeNS(null,"id",id);
      oline.setAttributeNS(null,"class",classname);
     return oline;
    }


    function new_animate(id,attName,attValue,durTime,repeatCount){
     var newobj=svgdoc.createElementNS(svgns, "animate");
     newobj.setAttributeNS(null,"id",id);
     newobj.setAttributeNS(null,"attributeName",attName);
     newobj.setAttributeNS(null,"values",attValue);
     newobj.setAttributeNS(null,"dur",durTime);
     newobj.setAttributeNS(null,"repeatCount",repeatCount);
     return newobj;
    }

    function new_link(id,href){
     var newobj = svgdoc.createElementNS(svgns, id);
     newobj.setAttributeNS(xlinkns, "xlink:href", href);
     return newobj;
    }

    function new_use(id,x,y){
     var newobj=svgdoc.createElementNS(svgns,"use");
     newobj.setAttributeNS(null,"id",id);
     newobj.setAttributeNS(null,"x",x);
     newobj.setAttributeNS(null,"y",y);
     //newobj.setAttributeNS(null,"width",10);
     //newobj.setAttributeNS(null,"height",10);
     return newobj;
    }

    function new_image(id,x,y,wid,hei,href){
     var newobj=svgdoc.createElementNS(svgns,"image");
     newobj.setAttributeNS(null,"id",id);
     newobj.setAttributeNS(null,"x",x);
     newobj.setAttributeNS(null,"y",y);
     newobj.setAttributeNS(null,"width",wid);
     newobj.setAttributeNS(null,"height",hei);
     newobj.setAttributeNS(xlinkns, "xlink:href", href);
     return newobj;
    }

    function new_tspan(id,fillcolor){
     var newobj=svgdoc.createElementNS(svgns,"tspan");
     newobj.setAttributeNS(null,"id",id);
     newobj.setAttributeNS(null,"fill",fillcolor);
     return newobj;
    }

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/7/5 18:25:00
     
     hmilyice_angel 美女呀,离线,快来找我吧!巨蟹座1981-7-9
      
      
      等级:大一新生
      文章:11
      积分:118
      门派:XML.ORG.CN
      注册:2005/7/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给hmilyice_angel发送一个短消息 把hmilyice_angel加入好友 查看hmilyice_angel的个人资料 搜索hmilyice_angel在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看hmilyice_angel的博客7
    发贴心情 
    前面少了的代码
    function new_group(id){
     var newobj=svgdoc.createElementNS(svgns,"g");
     newobj.setAttributeNS(null,"id",id);
     return newobj;
    }

    function new_circle(id,x,y,r,classid){
     var newobj=svgdoc.createElementNS(svgns,"circle");
     newobj.setAttributeNS(null,"id",id);
     newobj.setAttributeNS(null,"cx",x);
     newobj.setAttributeNS(null,"cy",y);
     newobj.setAttributeNS(null,"r",r);
     newobj.setAttributeNS(null,"class",classid);
     return newobj;
    }

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/7/5 18:28:00
     
     turta 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:14
      积分:120
      门派:XML.ORG.CN
      注册:2005/5/30

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给turta发送一个短消息 把turta加入好友 查看turta的个人资料 搜索turta在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 引用回复这个贴子 回复这个贴子 查看turta的博客8
    发贴心情 
    我的初衷是想将这些东西都封装在javaBean里面~!
    通过jdom 动态的修改svgdocument!
    这样就达到了比较好的组件的目的!
    而且重用性将大大提高!
    欢迎有见地的朋友高谈阔论!
    在下正酝酿之中
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/8/11 21:27:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 SVG/GML/VRML/X3D/XAML 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/7/18 16:18:24

    本主题贴数8,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    140.625ms