将节点放置在另一个轨道上的算法

时间:2013-06-06 02:56:50

标签: algorithm

我正在试图找出能让我这样的方程式。

如果我有一个中心节点,并且有一定数量的节点在轨道上运行,我怎样才能得到我需要以均匀间隔放置它们的画布坐标?

在这种情况下,我们有八个节点,因为它们对我来说最容易绘制。但在其他情况下,我们可能会有更多或更少。

如果您在Java中有最佳回应。否则伪代码很好。

样本图片有助于解释:

Image

2 个答案:

答案 0 :(得分:3)

如果您从0,0行进到D,0角度为0弧度,则在任何其他角度A行进以下距离:

xdiff = D*cos(A)
ydiff = D*sin(A)

(注意A必须是弧度 - 0和2 * pi是一个完整的0/360度,所以2pi / 2是180度,2pi / 4是90度等等)

所以(例如),在围绕中心圆的距离D处绘制十个圆,考虑每个角A = i * 2pi / 10,计算每个角的xdiff和ydiff,将它们添加到中心圆的位置,绘制轨道圆圈。

答案 1 :(得分:0)

有很多方法。

作为一个起点来看看 http://en.wikipedia.org/wiki/Force-directed_graph_drawing