3

所以我正在做一个项目,最终将使用 Flickr api 生成一种流程图。您将提供一个种子标签,程序将使用该种子标签来查找其他具有共同标签的相关 Flickr 图片...

我已经启动并运行了所有后端的东西,但我对格式感到困惑。这是我希望它看起来像的屏幕截图......

酷屏幕

这是我的问题。有没有接近每个分支间距的好方法?这意味着,我想要一个函数,我可以简单地创建一个新节点(或“分支”)并指定我希望它附加到哪个现有节点。这一切都很好,但我需要能够自动智能地将新节点放置在页面上,这样它就不会与任何现有的行或节点重叠。我想这更像是一个一般性的编程问题,就好像我知道我可以编写它的过程一样,但对于那些有兴趣的人,我会在 Javascript/HTML/CSS 中进行样式设置,也许还有一些用于 Flickr 调用的 PHP。

随时提出任何问题来澄清我的胡言乱语。

4

2 回答 2

4

您可以在节点之间使用弹簧模型。每个节点都对其他每个节点施加排斥力。让所有节点相互推挤一定次数,你就会想出一个合理的解决方案。您需要有几个限制,以确保节点不会飞入太空,并且不会在几个相似的状态之间振荡。

在 Javascript/PHP 中实现它留给读者作为练习。

另一种方法是使用图形布局程序,例如GraphViz

于 2009-08-05T18:16:48.133 回答
0

我期待看到你的项目的结果。我同意 scompt 关于使用 graphviz 的看法。

于 2009-08-05T20:19:53.750 回答