我正在尝试为我自己构建的图形应用程序编写一个强制定向或强制图集代码库。以下是我正在尝试的示例:http://sawamuland.com/flash/graph.html
我设法在Wiki Force-atlas文章中找到了一些伪代码来完成我想要的内容。我已将其转换为ActionScript 3.0代码,因为它是一个Flash应用程序。这是我的来源:
var timestep:int = 0;
var damping:int = 0;
var total_kinetic_engery:int = 0;
for (var node in list) {
var net_force:int = 0;
for (var other_node in list) {
net_force += coulombRepulsion(node, other_node, nodeList);
}
for (var spring in list[node].relations) {
net_force += hookeAttraction(node, spring, nodeList);
}
list[node].velocity += (timestep * net_force) * damping;
list[node].position += timestep * list[node].velocity;
total_kinetic_engery += list[node].mass * (list[node].velocity) ^ 2;
}
现在的问题是找到伪代码或执行库仑排斥和霍克吸引力代码的功能。我不确定如何做到这一点。
有谁知道我可以看到一个很好的参考...快速理解和实施?
最佳。
答案 0 :(得分:1)
在同一篇文章中有这些链接。 Hooke's是链接末端节点之间的弹力,而库仑力则排斥附近的节点。
问题不在于表达式,而是在其中应用的常量。我会阅读原始文章,google for “Fruchterman,TMJ,& Reingold,EM(1991)。Graph Drawing by Force-Directed Placement。Software:Practice and Experience,21(11)。”并阅读pdf以了解作者的建议。
不过,你的vars可能必须是浮点数,而不是整数。答案 1 :(得分:0)