我如何检查列表中的任何节点是否相交直到它们不相交?

时间:2019-07-26 09:10:50

标签: java swing graphics

我有一个要用Java绘制到JPanel的节点集合,我想做的是使这些节点之间不相交,以便最终我可以尝试创建凸包问题的解决方案。我目前无法解决如何创建一个系统来检查是否有任何节点相交,然后只是更新它们的位置直到它们都没有相交。

while(!sorted) {
    for(Node otherNodes : nodes) {
        for(Node node : nodes) {
                if( new Rectangle(node.x,node.y,20,20).intersects( new Rectangle(otherNodes.x,otherNodes.y,20,20))) {
                    node.setX(r.nextInt(300));
                    node.setY(r.nextInt(300));
                }
                else {
                    sorted = true;
                }
            }

        }
    }

这是我尝试创建解决方案的尝试,尽管它不起作用。

我已经将节点存储在这样的ArrayList中

ArrayList<Node> nodes = new ArrayList<Node>();

有帮助吗?谢谢:)

0 个答案:

没有答案