我们正在调查alterntive控制库,我们正在研究一个新的项目。 一的要求是在表面图的形式来显示数据,按照下面的图表ComponentOne的。
我们已经在过去使用C1控制,但无法与它完全满意 - 所以想知道,如果任何人都可以recommoned一些替代品。
有一些很难找到任何,所以所有的帮助表示赞赏。
注:这是一个.NET 3.5 WinForms应用程序
我们正在调查alterntive控制库,我们正在研究一个新的项目。 一的要求是在表面图的形式来显示数据,按照下面的图表ComponentOne的。
我们已经在过去使用C1控制,但无法与它完全满意 - 所以想知道,如果任何人都可以recommoned一些替代品。
有一些很难找到任何,所以所有的帮助表示赞赏。
注:这是一个.NET 3.5 WinForms应用程序
下面是一些有图表的您正在寻找的类型一些商业提供商:
您可能已经遇到过这一点,但我想我会指出CodeProject上的文章情节的3D曲面 。 我不知道,如果它的功能设置足以满足您的需求,但它是值得探讨,如果你还没有准备好。 最明显的优势是,它是免费的,开源的(这样你可能会展开为您的特定需求)。
示例屏幕截图:
看起来相当完整的另一个可能的选择是F#的可视化图书馆。 这是商业,但它的外观会做更多的 ,你可能需要的东西。 不要让一个事实,即它是专为F#把你赶走- 你还是应该使用它直接从C#(或者有少量的互操作,使事情更清洁)。 当然,通过C#提供的函数式编程的支持应使工作比较容易。
示例屏幕截图:
(来源: ffconsultancy.com )
我建议第一(CodeProject上)选项,只是恰好满足您的要求的情况下,虽然它还没有。 F#的一个几乎肯定会不够好。 需要注意的是F#是一个功能性的语言(因此通常用于数学和科学应用),这很可能是为绘制图形绘制相关的任何功能的一个很好的选择 - 你甚至可能会考虑编写,它绘制在程序的一部分语言,尤其是如果它变得相对复杂。
希望帮助。
它可能不是我的事,因为我从来没有使用C#/。NET框架/等,但看起来像一个矩阵的网格图。
我们被介绍到八度的统一和包装的一个允许我们目积矩阵。 对于ploting封装倍频采用的是GNUPLOT 。 我不知道你是否能勾什么到.NET 3.5,所以可能没有太大的帮助,但它工作在看看 。
(来源: network-theory.co.uk )
取决于你想要多少就可以了花,也有很多的选择,我们做了各种3D图形工作,并已在过去广泛探索它下面我提供了一些链接,帮助你开始
从Gigasoft 3D图形科学- http://www.gigasoft.com
Ginosurf从吉诺图形- http://www.gino-graphics.com/products/surf.htm
Matlab的建设者对于.NET - http://www.mathworks.com/products/netbuilder
Meshviz和OpenInventor从水星系统- http://www.vsg3d.com/
总是有DirectX和它的端口,以托管代码
希望这是有益的
我们使用Nevron之前,其他的WinForms图表和他们是伟大的 - 该产品的工作和技术支持是非常有帮助。
他们似乎做表面图(至少我理解他们):www.nevron.com/Gallery.ChartFor.NET.ChartTypes.GridSurfaceChartGallery.aspx www.nevron.com/Gallery.ChartFor.NET.ChartTypes.MeshSurfaceChartGallery.aspx WWW .nevron.com / Gallery.ChartFor.NET.ChartTypes.TriangulatedSurface.aspx
(我试图让他们适当的联系,但因为我是新的我是不允许把在不止一个)
我会建议使用Scinet图表从http://www.obacs.com 。 它有相当多的图表选项,并与替代品便宜得多。
我建议一些谨慎使用Nevron。 我有丰富的经验,因为我一直在使用他们我所有的在企业级商业智能应用程序的图表,为过去5年。
还有很多喜欢Nevron:
所有好的这么远吗? 对我来说,凶手必须是痛苦时,套件的新版本发布是参与。 我们使用Nevron我们的图表和Infragistics的为我们的UI组件。 我一般在半天升级我们的Infragistics的新版本的应用程序。 新Nevron升级可以采取什么长达4周。
他们已经改变了他们的对象模型很多次,有两个破接口的兼容性和改变你做事的方式的记录。 我有恐惧的感觉,每次我要大跳Nevron升级...
警告的另一个词,它们的轴标签的处理留下了很多待改进。 我花了很多时间试图让轴标签好看。 这种支持在过去的几个版本有所改善,但它仍然是还没有。
你可能要考虑从超级2D / 3D图形库 软件二十一世纪 (它的无版权费,这是非常便宜)。
示例代码:
Imports Super2d3dGraphLibrary
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim sf As New SeriesFactory
Dim x, y, z As Integer
For x = 0 To 100 Step 5
For z = 0 To 100 Step 5
y = 30 - Math.Sqrt((x - 50) * (x - 50) + (z - 50) * (z - 50)) + Rnd() * 5
If y < 0 Then
y = 0
End If
sf.AddPoint(x, y, z)
Next
Next
sf.GenerateMesh()
With Super2d3dGraph1
.LicenseeIdentifier = "PROF"
.Title = "Surface chart from random X/Y/Z points"
.Style = Super2d3dGraphLibrary.STYLE2D3D.STYLE3D_XYZ_SURFACE_TRIANGLE
.BackStyle = STYLEBACKGROUND.STYLEBACKGROUND_GRADIENT
.ShowXAxis = True
.XAxisTitle = "X-Axis"
.XAxisScaleMaximum = 100
.XAxisScaleMinimum = 0
.XAxisScaleMode = SCALEMODE.SCALEMODE_FIXED
.XAxisNumericFormat = "0"
.ShowDividersX = True
.ShowYAxis = True
.YAxisTitle = "Y-Axis"
.YAxisNumericFormat = "0"
.ShowZAxis = True
.ZAxisTitle = "Z-Axis"
.ZAxisScaleMaximum = 100
.ZAxisScaleMinimum = 0
.ZAxisScaleMode = SCALEMODE.SCALEMODE_FIXED
.ZAxisNumericFormat = "0"
.ShowDividersZ = True
.ShowLegend = False
.ShowValues = False
.ShowDataTable = False
.SurfaceBrushStyle = New SolidBrush(Color.LightGreen)
.SurfaceBrushMinBrightness = 30
.SeriesLineStyle = New Pen() {New Pen(Color.Black)}
sf.ApplyTo(Super2d3dGraph1)
End With
End Sub
End Class
这里的链接: 超级2D / 3D图形库产品页面
这个名单怎么能没有至少提的完整ILNumerics ?
免责声明:我有偏见作为ILNumerics团队合作。 但是,我们的可视化引擎带来了当今最灵活和最快速的表面图可用。 这是我们的客户说。 您可以尝试自己的自由 - 甚至可以直接在我们的网站。
编辑:很简单的将如下实现ILNumerics的表面情节的设置:
var scene = new ILScene() {
new ILPlotCube(twoDMode: false) {
// we could define concrete data as matrix here. But for now
// we go with an analytic expression instead:
new ILSurface(
(x, y) => (float)(Math.Sin(x) * Math.Cos(y)
* Math.Exp(-(x * x + y * y) / 46)),
colormap: Colormaps.Flag) // { new ILColorbar() }
}
};
所有的场景,使场景图构成了简单的对象。 您可以修改和控制一切。 这是专门用于科学数据。 试着在网上修改这个例子:
http://ilnumerics.net/ilcc.php?ilc=ia13490
我一直很高兴与登打士图表在过去-你可以看到,如果适合您的需求。
你可能也想尝试: