我正在JavaFX中尝试将对象放在一个点上而不重叠。因为我正在努力制作一个词云计划。
如果发生碰撞,我起初试图将它们置于螺旋状中 (我有一种方法可以检测我班上的碰撞)if (collisionDetected){
text.translateXProperty().asObject().setValue((double)80);
}
但我无法解决如何设置螺旋路径
所以我想生成rand.int x y值并向中心点移动直到检测到碰撞,然后放置对象并移动到列表中的下一个对象。在检测到碰撞之前,我不确定如何设置路径和增量。或者从中间的所有内容开始并在360度内决定rand.int并创建一个到场景边界的路径并沿着它增加直到collisionDetected = false
更好,如
Integer randproperty = rand.nextInt(0, 360);
while(collisionDetected){
Path path = new Path();
MoveTo moveTo = new MoveTo();
moveTo.setX(randproperty);
moveTo.setY(randproperty);
path.getElements().add(moveTo);
我不知道如何在路径上移动它,直到collisionDetected = false。
这里有一些图表链接到imgur,以直观地表示我mean.
总而言之,我试图将对象放置在靠近中心点的位置而不使它们相交。我可以检查一个交叉点是否已经发生,但我不知道如何将文本对象移动到没有交叉点的区域。图片链接到imgur作为视觉表示。
由于