C# · 12月 26, 2021

c# – 如何在.Net中可视化复杂的图形?

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

这个图形的实际性质很常见:每个块代表从2个操作数的派生.橙色圆圈是对2个操作数的引用,绿色圆圈是与消费者的连接点.区分操作数位置(左或右)可能是重要的,例如,如果派生表示差分或除法的数学运算(在这种特殊情况下,块可以是三角形,但在其他情况下,操作数本身可以使用意识到左边的操作数是什么块,是什么块是正确的).另一个常见的应用是具有复杂关系的相交集合.

解决方法 你可以看看 Graph#,但我不知道它会处理这样的复合节点有多好.这可能是一个很好的起点.