绘制路径而不覆盖现有形状?

发布于 2024-12-09 03:54:53 字数 140 浏览 1 评论 0原文

需要帮助..

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

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

Help needed..

I have a organization layout which have rectangular shapes not in an ordered grid. If it was a grid, I would have used A- star code. So, How to connect two nodes (i.e. two rectangles) without interfering in between nodes(rectangles).

I just want the algorithm to find coordinates that will draw the path so that I can use that in generating SVG file.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

唯憾梦倾城 2024-12-16 03:54:53

我遵循的算法-

  1. 存储所有矩形边缘的坐标,即左边缘,
    右、上、下作为四个数据集。
  2. 沿着从 矩形 A 上的点到矩形 B 上的点的路径。
  3. 找到与路径相交的第一条边(根据坐标计算找到不可能与路径相交的倾斜边,并在查找相交边时将其消除)。
  4. 找到第一个交点后,从 PointA 到 PointB 的路径更改为 PointA 到交点,并沿着相交的边生成路径并从那里到 B 点。
  5. 重复点 3 n 4 直到完成到 PointB 的路径,且不与任何点相交边缘。

我实现了这个算法,即使这没有给出精确的最短路径。这提供了很大的输出。如果有人请求,我想分享java代码,因为我发现很难解释我是如何通过上述几点实现的。

Algorithm which I followed-

  1. Store coordinates of edges of all Rectangles namely edge left,
    right, top, bottom as four datasets.
  2. Follow the path from a point on RectangleA to a point on RectangleB.
  3. Find the first edge that intersect with the path( Skew edges that are impossible to intersect the path are found based on calculations using coordinates and they are eliminated while finding intersecting edges).
  4. After finding the first intersection, path from PointA to PointB is changed to PointA to Point of intersection and the path generated along the edge that intersect and from there to Point B.
  5. Points 3 n 4 are repeated till path to PointB is complete without intersecting any edge.

I implemented this algorithm even though this is not giving an exact shortest path. This gives great output. I would like to share the java code if anyone requests since I find it difficult to explain how I implemented by above points.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文