Как я визуализирую сложный график в .NET?

Я должен визуализировать график. Я не знаю, как назвать его (между прочим, если Вы будете знать то - я буду ценить, если Вы скажете мне). Это было бы идеально, чтобы элементы графика были активируемы по щелчку (так, чтобы, когда пользователь нажимает на блок, я мог обработать событие с указанным идентификатором элемента), но я могу выжить даже без любой интерактивности. Я хотел бы мочь сфокусировать на конкретном узле и расположении всех других для просмотра с его точки зрения. Есть ли какие-либо компоненты доступная польза для этой задачи? Если не, что я должен искать, чтобы помочь мне разработать алгоритм для рисования такого графика с визуально удобным расположением?

Практический характер этого графика довольно распространен: каждый блок представляет деривацию из 2 операндов. Оранжевые круги являются ссылками на 2 операнда, зеленые круги являются точками подключения потребителям. Может быть значительно отличить (левое или правое) положение операнда, например, если деривация представляет математическую операцию различия или разделение (в данном случае, блок может быть треугольным, но в других случаях сам операнд может использовать то, чтобы быть знающим для того, какие блоки это левый операнд и для того, какие блоки это право). Другое распространенное приложение пересекает наборы со сложными отношениями.

10
задан Zoe 23 May 2019 в 19:00
поделиться

6 ответов

Ну, сначала вам нужно как-то представить это в памяти, есть много способов, например список смежности . Затем нужно его нарисовать. Хотя обычно рисовать график просто, это не так просто, если вам нужно разметить его . Похоже, в вашем случае это именно то, что вам нужно сделать, чтобы прийти к этому красивому представлению. Это будет нелегко.

РЕДАКТИРОВАТЬ: Интересно, похоже, существует библиотека , созданная Microsoft Research.

2
ответ дан 3 December 2019 в 22:35
поделиться

Я не знаю, насколько это будет полезно в данном конкретном сценарии, но вы можете взглянуть на http: // quickgraph .codeplex.com /

2
ответ дан 3 December 2019 в 22:35
поделиться

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

2
ответ дан 3 December 2019 в 22:35
поделиться

Я не могу найти этот компонент, и я решил написать свой собственный элемент управления, линию и голову и использовать их для визуализации моего графика Если необходимо, я могу предоставить его компонент и программу, чтобы продемонстрировать его / Я писал компоненты и программы в Visual Studio 2008 на языке C #

1
ответ дан 3 December 2019 в 22:35
поделиться

Вы можете взглянуть на Graph#, но я не уверен, насколько хорошо он справится с такими составными узлами. Тем не менее, это может быть хорошей отправной точкой.

6
ответ дан 3 December 2019 в 22:35
поделиться

Довольно хорошо выглядит инструмент Диаграмма от Nevron. Но это не бесплатно!

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

1
ответ дан 3 December 2019 в 22:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: