Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在不覆盖现有形状的情况下绘制路径?_Java_Layout_Svg_Overlay_Path Finding - Fatal编程技术网

Java 在不覆盖现有形状的情况下绘制路径?

Java 在不覆盖现有形状的情况下绘制路径?,java,layout,svg,overlay,path-finding,Java,Layout,Svg,Overlay,Path Finding,需要帮助 我有一个组织布局,其矩形形状不在有序的网格中。如果它是一个网格,我会使用a-star代码。因此,如何连接两个节点(即两个矩形),而不干扰节点之间(矩形) 我只想让算法找到绘制路径的坐标,以便在生成SVG文件时使用它。我遵循的算法- 存储所有矩形边的坐标,即左边, 右、上、下为四个数据集 沿着从矩形a上的点到矩形B上的点的路径 查找与路径相交的第一条边(基于使用坐标的计算查找不可能与路径相交的倾斜边,并在查找相交边时将其消除) 找到第一个交点后,从点A到点B的路径将更改为点A到交点的路径

需要帮助

我有一个组织布局,其矩形形状不在有序的网格中。如果它是一个网格,我会使用a-star代码。因此,如何连接两个节点(即两个矩形),而不干扰节点之间(矩形)


我只想让算法找到绘制路径的坐标,以便在生成SVG文件时使用它。

我遵循的算法-

  • 存储所有矩形边的坐标,即左边, 右、上、下为四个数据集
  • 沿着从矩形a上的点到矩形B上的点的路径
  • 查找与路径相交的第一条边(基于使用坐标的计算查找不可能与路径相交的倾斜边,并在查找相交边时将其消除)
  • 找到第一个交点后,从点A到点B的路径将更改为点A到交点的路径,以及沿相交边生成的路径以及从相交边到点B的路径
  • 重复点3n4,直到点B的路径完整,且不与任何边相交

  • 我实现了这个算法,尽管它没有给出一个精确的最短路径。这将产生巨大的产出。如果有人要求,我愿意分享java代码,因为我发现很难解释我是如何通过以上几点实现的。

    要获得最短路径,您应该构建一个图,其中节点将是矩形的边。然后连接彼此可见范围内的节点,并存储每条连接线的长度。将起点和终点添加到此图形后,可以在其上运行*代码。