隨筆-124  評(píng)論-194  文章-0  trackbacks-0
          EXTJS和D3都很強(qiáng)大,不解釋了,把D3繪的圖直接放到一個(gè)EXT的TAB里,直接上圖上代碼:


          代碼中的D3例子來(lái)自:
          https://github.com/mbostock/d3/wiki/Force-Layout
          可用于繪制拓?fù)浣Y(jié)構(gòu)圖.
          Ext.define('EB.view.content.SingleView', {
              extend : 'Ext.panel.Panel',
              alias : 'widget.singleview',

              layout : 'fit',

              title : 'single view',

              initComponent : function() {
                  this.callParent(arguments);
              },

              onRender : function() {
                  var me = this;

                  me.doc = Ext.getDoc();
                  me.callParent(arguments);

                  me.drawMap();
              },

              drawMap : function() {
                  var width = 960, height = 500

                  var target = d3.select("#" + this.id+"-body");

                  var svg = target.append("svg").attr("width", width).attr("height",
                          height);

                  var force = d3.layout.force().gravity(.05).distance(100).charge(-100)
                          .size([width, height]);

                          // get from: https://github.com/mbostock/d3/wiki/Force-Layout
                          
          // example: force-directed images and labels
                  d3.json("graph.json", function(json) {
                      force.nodes(json.nodes).links(json.links).start();

                      var link = svg.selectAll(".link").data(json.links).enter()
                              .append("line").attr("class", "link");

                      var node = svg.selectAll(".node").data(json.nodes).enter()
                              .append("g").attr("class", "node").call(force.drag);

                      node.append("image").attr("xlink:href",
                              "https://github.com/favicon.ico").attr("x", -8).attr("y",
                              -8).attr("width", 16).attr("height", 16);

                      node.append("text").attr("dx", 12).attr("dy", ".35em").text(
                              function(d) {
                                  return d.name
                              });

                      force.on("tick", function() {
                                  link.attr("x1", function(d) {
                                              return d.source.x;
                                          }).attr("y1", function(d) {
                                              return d.source.y;
                                          }).attr("x2", function(d) {
                                              return d.target.x;
                                          }).attr("y2", function(d) {
                                              return d.target.y;
                                          });

                                  node.attr("transform", function(d) {
                                              return "translate(" + d.x + "," + d.y + ")";
                                          });
                              });
                  });
              }

          });
          posted on 2012-09-27 07:38 我愛(ài)佳娃 閱讀(4474) 評(píng)論(0)  編輯  收藏 所屬分類: javascript
          主站蜘蛛池模板: 疏勒县| 射阳县| 兴业县| 修武县| 夏河县| 乾安县| 凉城县| 洛扎县| 虞城县| 盐城市| 新兴县| 通化市| 兴海县| 保德县| 宿州市| 栾川县| 安岳县| 荣昌县| 庆城县| 尉犁县| 长白| 锦屏县| 班戈县| 织金县| 平昌县| 乐安县| 长春市| 徐水县| 达孜县| 南昌县| 大石桥市| 庆阳市| 象州县| 张家口市| 仁布县| 嘉鱼县| 隆尧县| 金溪县| 卓资县| 尖扎县| 陈巴尔虎旗|