2017-11-28 12 views
1

力指向グラフのノードの周囲に凸包を描くために、d3 v4とthis technique(若干修正)を使用しました。素晴らしい作品ですが、今はこれらのノードのグループにラベルを付ける必要があります。最終的には、this SVGのようなものを描きたいと思います。ポリゴンの移動に伴って移動するように、またはある種の別のグループを作成する必要があるように、テキスト要素を凸状のヌルポリゴンに追加することは可能ですか?d3で生成された凸包にラベルを追加するにはどうすればよいですか?

答えて

1

私はそうのような問題にアプローチします:(バージョンによって異なります)d3.geomまたはd3.polygonを使用して をその多角形の重心を探すポイント

  • から凸包ポリゴンを作成します

    • :それは新しいことで座標D3 v4の中心部

    だと

  • 更新いくつかのテキストは、このような何かを探します3210
    var polygon = d3.polygonHull(vertices); 
    

    次にあなたが重心を見つける:

    var centroid = d3.polygonCentroid(polygon); 
    

    とテキストを更新します。

    var polygon = d3.geom.polygon(d3.geom.hull(vertices)); 
    var centroid = polygon.centroid(); 
    text.attr("transform","translate("+centroid+")"); 
    

    d3v3で
    text.attr("transform","translate("+ centroid +")") 
    

    とコードV2は、よりのようになります。


    複数のテキストを一度に更新するには、これを達成するための潜在的な方法がたくさんあるので、ここではそのことを話しません。

    次に、v4で更新されるsingle text要素の例を示します。

  • 関連する問題