如何在.Net中可视化复杂图形?

Iva*_*van 10 .net c# graphics graph

我需要想象一下这种图形.我不知道如何命名(顺便说一句,如果你知道 - 如果你告诉我,我会很感激).图形元素可以被点击是理想的(这样当用户点击一个块时,我可以处理一个指定了元素id的事件),但即使没有任何交互性,我也能活下来.我可能希望能够专注于特定节点并将所有其他节点布局为从其角度进行查看.是否有适合此任务的组件?如果不是,我应该寻找什么来帮助我开发一种算法来绘制具有视觉舒适布局的图形?

该图的实际特性非常常见:每个块代表来自2个操作数的派生.橙色圆圈表示2个操作数,绿色圆圈表示消费者的连接点.区分操作数位置(左或右)可能很重要,例如,如果推导表示差异或除法的数学运算(在此特定情况下,块可以是三角形,但在其他情况下,操作数本身可以使用知道哪些块是左操作数,哪些块是右边的).另一个常见的应用是具有复杂关系的交叉集.

Wil*_*den 6

您可以看看Graph#,但我不确定它将如何处理这样的复合节点.这可能是一个很好的起点.