2

このコード スニペットから、関数の "d" 引数の値を確認したいと思います。

var force = force = d3.layout.force()
    .nodes(json.nodes)
    .links(json.links)
    .linkDistance(function (d){return d;}) //I need to know the "d" value to decide what return
    .size([width, height])
    .start();

私はfirebugを使用していますが、その機能に入ることができません。関数内にアラートを入れようとしましたが、うまくいきませんでした。

4

1 に答える 1

1

d3 のドキュメントには、引数とは何かが記載されています。

force.linkDistance([距離])

距離が指定されている場合、リンクされたノード間のターゲット距離を指定された値に設定します。距離が指定されていない場合、レイアウトの現在のリンク距離が返されます。デフォルトは 20 です。距離が定数の場合、すべてのリンクは同じ距離になります。それ以外の場合、distance が関数の場合、関数はリンクごとに (順番に) 評価され、リンクとそのインデックスが渡され、このコンテキストが強制レイアウトとして使用されます。関数の戻り値は、各リンクの距離を設定するために使用されます。この関数は、レイアウトが開始されるたびに評価されます。通常、距離はピクセル単位で指定されます。ただし、単位はレイアウトのサイズに対して任意です。

>

したがって、引数が関数の場合、最初の引数はリンクで、2 番目の引数はリンクのインデックスです。関数を適用する前に、強制レイアウトにデータを関連付けることを忘れないでください。

ここに例があります:

force
    .nodes(json.nodes)
    .links(json.links);

    force.linkStrength(function(d,i) {return (json.links[i].isMyLeaf ? .01: 1);});

私のjsonファイルでは、リンクごとにisMyLeafを定義しています。

于 2013-03-25T10:40:41.903 に答える