Создание собственного макета d3

Мне нужно создать собственный макет d3, который несколько похож на древовидную карту, но в треугольном стиле. Вот's скриншот, чтобы вы могли понять: Макет пирамиды

Как видите, он работает довольно аккуратно и соответствует моим потребностям. Чтобы закодировать это, ямы основали код на коде раскладки древовидной карты:

d3.layout.pyramid= function () {
    var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = 0;

    function populate (nodes, currentHeight, currentHeightPadded, currentBase, currentSumedWeight) {
       ...
    }

    function populate_layers (layer, nodes,currentHeight,currentLength, currentSumedArea,currentSumedWeight) {
       ...
    }

    function pyramid(d) {
       var nodes = hierarchy(d), root = nodes[0];

       populate(root.children.slice(),0,0,0,0);
       return nodes;
    }  

    pyramid.padding = function(x) {
       if (!arguments.length) return padding;
       padding = x;
       return pyramid;
    };

    pyramid.size = function(x) {
       if (!arguments.length) return size;
       size = x;
       return pyramid;
    };

    return d3_layout_hierarchyRebind(pyramid, hierarchy);
};

Моя проблема в том, чтобы сделать это, янам пришлось напрямую редактироватьd3.v2.js файл, потому что некоторые частные функции не доступны из outisde, в моем случаеd3_layout_hierarchyRebind, Очевидно, я знаю этоэто не лучшая практика, но я могуне удается вывести мой файл в отдельном сценарииd3_layout_hierarchyRebindis снаружи не видно

Я нене знаю, если этоs d3- или javascript-проблема, но яЯ хотел бы знать, не могли бы вы помочь мне решить эту маленькую проблему.

Поблагодарить'заранее!

Ответы на вопрос(1)

Ваш ответ на вопрос