Построение графа по матрице смежности на C#

gr1f1
Новичок
8/29/2008, 5:28:20 PM
Здравствуйте.
Недавно начал осваивать язык C# и решил написать прогу по графам.
Столкнулся с проблемой в графике. Суть такая, дана матрица смежности, например такая-
1100
0100
0111
0110
нужно по ней нарисовать орграф с вершинами, показать направление дуг. Все! Больше ничего не требуется.
Если кто-то обладает исходником и выложит его буду очень рад!
Спасибо заранее!
Недавно начал осваивать язык C# и решил написать прогу по графам.
Столкнулся с проблемой в графике. Суть такая, дана матрица смежности, например такая-
1100
0100
0111
0110
нужно по ней нарисовать орграф с вершинами, показать направление дуг. Все! Больше ничего не требуется.
Если кто-то обладает исходником и выложит его буду очень рад!
Спасибо заранее!

ole256
Любитель
9/1/2008, 2:41:57 AM
В чем конкретно проблема? Число вершин известно, рисуем их, скажем кружками с цифрой внутри. Нарисовать стрелку по известным координатам начала и конца - тоже не проблема.
Интересностей тут три:
1. Рисование стрелки из вершины в саму себя(отследить такую ситуацию просто) - либо дугой, либо линией+стрелкой,
2. Дуга из А в Б и дуга из Б в А. Нарисовать надо две несовпадающие дуги, чуть сместив координаты. Отследить тоже просто.
3. В идеале на пути дуги не должно быть вершин, не относящихся к этой дуге, достигнуть можно, расположив вершины по вершинам выпуклого многоугольника. Или просто на окружности.
В общем, школьный курс геометрии: синусы, косинусы. Математически не так сложно.
Интересностей тут три:
1. Рисование стрелки из вершины в саму себя(отследить такую ситуацию просто) - либо дугой, либо линией+стрелкой,
2. Дуга из А в Б и дуга из Б в А. Нарисовать надо две несовпадающие дуги, чуть сместив координаты. Отследить тоже просто.
3. В идеале на пути дуги не должно быть вершин, не относящихся к этой дуге, достигнуть можно, расположив вершины по вершинам выпуклого многоугольника. Или просто на окружности.
В общем, школьный курс геометрии: синусы, косинусы. Математически не так сложно.