Рисование пути без наложения существующих фигур? - PullRequest
3 голосов
/ 12 октября 2011

Нужна помощь ..

У меня есть организационная структура, которая имеет прямоугольные формы, а не упорядоченную сетку. Если бы это была сетка, я бы использовал код A-star. Итак, как соединить два узла (то есть два прямоугольника) без вмешательства между узлами (прямоугольниками).

Я просто хочу, чтобы алгоритм нашел координаты, которые будут рисовать путь, чтобы я мог использовать его при создании файла SVG.

1 Ответ

3 голосов
/ 21 марта 2012

Алгоритм, которому я следовал -

  1. Сохранение координат ребер всех прямоугольников, а именно ребра слева, справа, сверху, снизу как четыре набора данных.
  2. Следуйте по пути от точки на RectangleA к точке на RectangleB.
  3. Найдите первое ребро, которое пересекается с путем (искривленные ребра, которые невозможно пересечь путем, определяются на основе вычислений с использованием координат, и они исключаются при нахождении пересекающихся ребер).
  4. После нахождения первого пересечения путь от точки А к точке В изменяется на точку А на точку пересечения и путь, создаваемый вдоль края, который пересекается, и оттуда до точки Б.
  5. Точки 3 n 4 повторяются до тех пор, пока путь к точке B не будет завершен, не пересекая какое-либо ребро.

Я реализовал этот алгоритм, хотя он не дает точного кратчайшего пути. Это дает отличный результат. Я хотел бы поделиться кодом Java, если кто-то попросит, так как мне сложно объяснить, как я реализовал вышеуказанные пункты.

...