Dynamic D3js力布局:根据Levenshtein距离函数的动态链接距离

Dynamic D3js力布局:根据Levenshtein距离函数的动态链接距离,dynamic,d3.js,distance,force-layout,Dynamic,D3.js,Distance,Force Layout,我需要一个函数,它根据Levenshtein距离函数之前给出的数据提供动态距离。我想根据我的函数创建动态链接距离。我把Levenshtein距离函数放在同一页上。我是新来的,如果我犯了错误,请确认我。如果您需要,我会在这里回答您的问题。这是部队布局的问题吗?如果你给linkDistance一个函数,你会被每个链接调用,这应该允许你获得该链接上的两个节点。是的,它是关于强制布局的。我已经尝试创建函数,但失败了。你能给我一个简单的方法吗?感谢您的关注。假设您使用标准数据结构,它将类似于.linkDi

我需要一个函数,它根据Levenshtein距离函数之前给出的数据提供动态距离。我想根据我的函数创建动态链接距离。我把Levenshtein距离函数放在同一页上。我是新来的,如果我犯了错误,请确认我。如果您需要,我会在这里回答您的问题。

这是部队布局的问题吗?如果你给linkDistance一个函数,你会被每个链接调用,这应该允许你获得该链接上的两个节点。是的,它是关于强制布局的。我已经尝试创建函数,但失败了。你能给我一个简单的方法吗?感谢您的关注。假设您使用标准数据结构,它将类似于.linkDistancefunctionl{return levenshteinl.source,l.target;}。在距离函数中,需要通过dx和dy属性提取节点位置。我很难应用。我需要这样一个简单的代码:.linkDistancefunction{for var I=0;没错,您的距离函数基于节点的名称。在这种情况下,您需要在.linkDistance函数中调用类似于levenshteinl.source.name、l.target.name的名称。
var t0 = [  "site",        "how", "social",     "create", "membership"],
    t1 = [ "forum",       "site", "social", "membership", "networking"],
    t2 = ["social",    "network", "create",        "how",       "free"],
    t3 = ["social", "membership",   "site",    "website",       "make"] ;

    function levenshteinDistance (a, b) {
        if (!a.length) return b.length;
        if (!b.length) return a.length;
        return Math.min(
            levenshteinDistance(a.slice(1), b) + 1,
            levenshteinDistance(b.slice(1), a) + 1,
            levenshteinDistance(a.slice(1), b.slice(1)) + (a[0] !== b[0] ? 1 : 0)
        );
    }
    console.log(levenshteinDistance (t0, t1));
    console.log(levenshteinDistance (t0, t2));

    .linkDistance(levenshteinDistance (t0, t1))