构建图形而不显式计算所有边缘

时间:2014-10-30 17:10:36

标签: javascript d3.js

我当前正试图在类似于这个的js中构建一个图形:

http://bl.ocks.org/mbostock/4062045

边缘应该是共享相同标签(一个或多个)的所有对象的连接。

在以下示例中,存在这些边:

n1 - n2 (dog)
n1 - n4 (dog and cat)
n2 - n3 (fish)
n2 - n4 (dog and fish)
n3 - n4 (fish and reptile)

示例:

[
    {
        "Name": "n1",
        "tags": [
            "Dog",
            "Cat"
        ]
    },

    {
        "Name": "n2",
        "tags": [
            "Dog",
            "Fish"
        ]
    },

    {
        "Name": "n3",
        "tags": [
            "Fish",
            "Reptile"
        ]
    },

    {
        "Name": "n4",
        "tags": [
            "Dog",
            "Cat",
            "Fish",
            "Reptile"
        ]
    }, 
]

我现在的问题是:

  1. 我是否必须计算每个对象和每个标签的边缘?
  2. 有没有一个智能的解决方案来计算标签而不需要迭代,O(N ^ 2)时间?
  3. 有超过500个标签和更多对象,因此边数将是巨大的。任何建议都值得赞赏,因为我是js的新手。

0 个答案:

没有答案