1

データをツリーとして視覚化したいと考えていますが、デフォルトのリンクの外観もカスタマイズしたいと考えています。デフォルトの外観が示されていますが、 Rational Software Architectのリンクのように見えるリンクを作成したいと考えています。出来ますか?

4

2 に答える 2

1

リンクは SVG パス要素です。CSSを使用してスタイルを設定し、色や幅などを変更できます。矢印の頭にはSVG マーカーを使用できます。ラベルを追加するには、追加の SVG テキスト要素を追加する必要があります。たとえば、UML カーディナリティの SVG テキスト要素を作成するデータとして、ツリーリンクを含む新しい選択を追加できます。

于 2012-07-02T17:58:43.513 に答える
0

私は独自のパスハンドラーを作成してそれを行いました。サンプルコードは次のとおりです。

function elbow(d) {
        var radius = 10;

        var xOffsetSign = Math.sign(d.source.x - d.target.x);
        var yOffsetSign = Math.sign(d.source.y - d.target.y);

        if (xOffsetSign != 0) {
            var ellipseXDirection = (xOffsetSign * yOffsetSign) > 0 ? 1 : 0;

            return "M" + d.source.x + "," + d.source.y
                + " H" + (d.target.x + xOffsetSign * radius)
                + " A" + radius + "," + radius + " 0 0," + ellipseXDirection + " " + d.target.x + "," + (d.source.y - yOffsetSign * radius)
                + " V" + d.target.y
                + (d.target.children ? "" : "h" + margin.right);
        } else {
            return "M" + d.source.x + "," + d.source.y
                + " H" + d.target.x + " V" + d.target.y
                + (d.target.children ? "" : "h" + margin.right);
        }
    }

関数 Math.sign は私自身の実装です

于 2012-07-03T03:46:43.683 に答える