c # рисовать (соединять) линии без пересечения любой другой - PullRequest
2 голосов
/ 28 ноября 2011

У меня небольшая проблема с отображением соединения. Это должно быть динамично, поэтому я не могу использовать краску: P. Допустим, у меня есть некоторые разъемы на левой стороне и некоторые другие на правой стороне, как я могу рисовать линии между ними, не пересекая любые другие линии.

примечание: можно получить более 2-х линий разъемов, таких как:

┌---------------------------┐
| o------------o            o
└-o            o            o
  o            o            o
  o            o            o

у кого-нибудь есть идеи? Thnx!

1008 * Штефана *

Ответы [ 2 ]

3 голосов
/ 28 ноября 2011

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

возможно, это вам поможет: http://www.cs.brown.edu/~rt/papers/gd-tutorial/gd-constraints.pdf

1 голос
/ 28 ноября 2011

Я думаю, вы будете разочарованы - в общем случае это невозможно сделать даже с двумя линиями разъемов, например:

┌────────────────┐
│ o*           o─┘
|              |
| o────────────o
| |
└─o            o*

(Обновлено в ответ на комментарий)

Как затем соединить два разъема, помеченных *, не пересекая существующие линии?

Просто придумайте способ представить линии, пересекающиеся без пересечения.

...