Tag:

选择.Net的图表库

我有一个客户需要将图表应用程序(很久以前在MFC中开发)转换为C#。 该应用程序显示大型网络(大量图形元素),并允许用户通过图形UI编辑/操作数据。 我决定最好使用一个库,而不是从scracth开发所有(所有图形对象/选择/工具/事件/等) 我正在寻找商业解决方案。 我发现三个似乎非常成熟,我想知道是否有人使用它们并且可以写出他/她的意见: 汤姆索亚可视化 IBM ILog Diagrammer for .Net yWorks – .Net的yFiles 谢谢Yaron

.NET(或MFC)的高速图形控制?

我需要编写一个数字示波器类型的应用程序。 那里有很多很棒的静态图形控件,但是我需要一些可以绘制16条轨迹的东西,每秒处理4000个样本。 有谁知道.NET的高速图形控件? 我甚至会使用MFC,因为它可以包装到.NET控件中。 谢谢您的帮助!

使用LINQ进行高效的图遍历 – 消除递归

今天,我将实现一种方法来遍历任意深度的图形并将其展平为单个可枚举的图形。 相反,我先做了一点搜索,发现了这个: public static IEnumerable Traverse(this IEnumerable enumerable, Func<T, IEnumerable> recursivePropertySelector) { foreach (T item in enumerable) { yield return item; IEnumerable seqRecurse = recursivePropertySelector(item); if (seqRecurse == null) continue; foreach (T itemRecurse in Traverse(seqRecurse, recursivePropertySelector)) { yield return itemRecurse; } } } 从理论上讲,这看起来不错,但实际上我发现它比使用等效的手写代码(如果出现的情况)执行图表并做任何需要做的事情要差得多。 我怀疑这是因为在这种方法中,对于它返回的每个项目,堆栈必须放松到某个任意深度的水平。 我还怀疑如果递归被消除,这种方法会更有效地运行。 我也碰巧不太擅长消除递归。 有谁知道如何重写这种方法来消除递归? 谢谢你的帮助。 编辑:非常感谢所有详细的回复。 我已尝试对原始解决方案与Eric的解决方案进行基准测试,而不是使用枚举器方法,而是递归遍历一个lambda,奇怪的是,lambda递归明显快于其他两种方法。 class Node { public […]

使用Matlab从C#控制台应用程序创建图形或绘图?

如果我在C#中有一个二维数组,我如何在Matlab中绘制这个数组的内容,作为二维图? 我正在使用扩展方法,即 my2DArray.PlotInMatlab();