Соединение двух объектов со ссылками в 3djs - PullRequest
0 голосов
/ 06 марта 2019

Я работаю в 3djs и вызываю два объекта.Один - circle, другой - rect.

 var node = svg.append("g")
    .attr("class", "nodes")
    .selectAll("circle")
    .data(d3GraphData.nodes)
    .enter().append("circle")        
    .attr("r", function (d) { 
        if (d.type === "Customer") {  return 5; }
   })

  var nodo = svg.append("g")
    .attr("class", "nodes")
    .selectAll("rect")
    .data(d3GraphData.nodes)
    .enter().append("rect")
    .attr("height", function (d) { 
        if (d.type === "patongenoA") { return 34; } 
        ...
   })
     .attr("width", function (d) { 
        if (d.type === "patongenoA") { return 34; } 
      ... 
   })

Я пытался соединить их со ссылками, но каждый прямоугольник идет в угол: enter image description here

Я заметил, что function tickedНарисуйте ссылки на узел так:

function ticked() {
          link
          .attr("x1", function(d) {
            return d.source.x*3.4;
          })
          .attr("y1", function(d) {
            return d.source.y*3.4;
          })
          .attr("x2", function(d) {
            return d.target.x*3.4;
          })
          .attr("y2", function(d) {
            return d.target.y*3.4;
          });
      node
      .attr("cx", function(d) {
        return d.x*3.4;
      })
      .attr("cy", function(d) {
        return d.y*3.4;
      });

Итак, я добавляю nodo:

    nodo
      .attr("width", function(d) {
        return d.x*3.4;
      })
      .attr("height", function(d) {
        return d.y*3.4;
      }); 

, но это не работает.

Может ли кто-нибудь помочь мне с этим?

заранее спасибо,

Игнасио

...