我有一个客户需要将图表应用程序(很久以前在MFC中开发)转换为C#.该应用程序显示大型网络(大量图形元素),并允许用户通过图形UI编辑/操作数据.
我决定最好使用一个库而不是从scracth开发所有(所有图形对象/选择/工具/事件/等)
我正在寻找商业解决方案.
我发现有三个似乎非常成熟,我想知道是否有人使用它们并且可以写出他/她的意见:
谢谢Yaron
这个问题的延续这一个.
我的目标是找到股票价格数据的转折点.
到目前为止我:
试图区分平滑价格集,具备的帮助安德鲁·伯内特,汤普森博士使用中心五点法,如解释在这里.
我使用刻度数据的EMA20来平滑数据集.
对于图表上的每个点,我得到一阶导数(dy/dx).我为转折点创建了第二张图表.每次dy/dx介于[-some_small_value]和[+ some_small_value]之间时 - 我都会在此图表中添加一个点.
问题是:我没有得到真正的转折点,我得到了一些接近的东西.我得分太多或太少 - 取决于[some_small_value]
当dy/dx从负变为正时,我尝试了第二种添加点的方法,这也产生了太多的点,可能是因为我使用了刻度数据的EMA(而不是1分钟的收盘价)
第三种方法是将数据集分成n个点的切片,并找到最小和最大点.这工作正常(不理想),但它是滞后的.
谁有更好的方法?
我附上了2张输出图片(一阶导数和n点最小值/最大值)
我使用MFC开发了一个非常大的应用程序.Naturaly,我使用GDI绘图,CCmdTarget用于事件路由,以及文档视图架构.这是一条方便的发展道路.
现在,客户有兴趣将此应用程序转换为.Net.我更愿意(也是他们)用C#编写新产品.
应用程序显示并与数千个图形对象进行交互,因此我认为使用GDI +虽然看起来很自然,但可能会导致性能问题,所以我在考虑使用OpenGL,特别是OpenTK作为图形库(它是2D).
我知道OpenGL与这些Windows API的工作方式不同,后者依赖于屏幕部分的Invalidation.OpenGL有一个渲染循环,不断绘制到屏幕上.
我的问题是:这是一种可接受的方式,考虑:
性能 - 用户是否需要特殊的图形卡(硬件?).这是图形密集型,但它不是一个高端游戏
打印和打印预览 - 这些事情对于achienve来说是否复杂?
多个选择和上下文菜单
这个库在Windows窗体中运行良好吗?