我正在用Java开发一个简单的游戏,一切都很好,除了我有一个情况,我需要在一个圆的圆周上均匀地分布节点。
例如,如果正好有4个节点,那么一个将直接指向北方,一个指向南方,一个指向东方,一个指向西方。当然,也可能存在“偏移”,即第一个节点会稍微偏离北方,但两个相邻节点与圆心之间的90度角必须保持不变。
下面是我得到的代码。
private void randomizePositions(Set set)
{
Random rand = new Random();
for(Node n : set)
{
n.x = XCENTER + rand.nextDouble() * MINRADIUS;
n.y = YCENTER + rand.nextDouble() * MINRADIUS;
System.out.println("for node : " + n.lbl + " x = " + n.x + " y = " +n.y);
}
}
是,集合中节点的位置是随机的,如测试输出所示:
~/Desktop/applet$javac Graph.java
图形.java
节点:Bird_Food x=
200.97455004134613 y=205.0805621943253
204.4727596409387 y=206.26252504672223
对于节点:鱼食x=
203.22828002758823 y=202.30400672172576
208.8749664329499 y=203.43454377979435
207.72724954244495 y=202.9273879239392
节点:猫食x=
209.55574149936908 y=209.61827066724257
================================================
所以我想知道,如果只给定一个集合中的节点总数,如何才能正确计算位置?知道吗?
非常感谢提前提出的建议。