绘图路径没有覆盖现有的形状?

时间:2011-10-12 08:21:05

标签: java layout svg overlay path-finding

需要帮助..

我有一个组织布局,其矩形形状不在有序网格中。如果它是一个网格,我会使用A-星代码。那么,如何在不干扰节点(矩形)的情况下连接两个节点(即两个矩形)。

我只是希望算法找到将绘制路径的坐标,以便我可以在生成SVG文件时使用它。

1 个答案:

答案 0 :(得分:3)

我遵循的算法 -

  1. 存储所有矩形边缘的坐标,即左边缘, 右,上,下为四个数据集。
  2. 按照RectangleA上的点到RectangleB上的点的路径。
  3. 找到与路径相交的第一条边(根据使用坐标的计算找到不可能与路径相交的偏斜边,并在找到相交边时消除它们。)
  4. 找到第一个交叉点后,从PointA到PointB的路径将更改为PointA到交叉点,以及沿着相交的边缘生成的路径,从那里到B点。
  5. 重复点3 n 4直到到达PointB的路径完成而没有与任何边相交。
  6. 我实现了这个算法,即使这没有给出一个确切的最短路径。这提供了很好的输出。我想分享java代码,如果有人请求,因为我发现很难解释我是如何按上述要点实现的。