替代ComponentOne的3D表面图图[关闭](Alternative to Component

2019-06-23 09:29发布

我们正在调查alterntive控制库,我们正在研究一个新的项目。 一的要求是在表面图的形式来显示数据,按照下面的图表ComponentOne的。

我们已经在过去使用C1控制,但无法与它完全满意 - 所以想知道,如果任何人都可以recommoned一些替代品。

有一些很难找到任何,所以所有的帮助表示赞赏。

注:这是一个.NET 3.5 WinForms应用程序

Answer 1:

下面是一些有图表的您正在寻找的类型一些商业提供商:

  1. ChartFX用于.NET -画廊提供的图表 ,包括3D面
  2. Nevron图表.NET -画廊可用表面图


Answer 2:

您可能已经遇到过这一点,但我想我会指出CodeProject上的文章情节的3D曲面 。 我不知道,如果它的功能设置足以满足您的需求,但它是值得探讨,如果你还没有准备好。 最明显的优势是,它是免费的,开源的(这样你可能会展开为您的特定需求)。

示例屏幕截图:

看起来相当完整的另一个可能的选择是F#的可视化图书馆。 这是商业,但它的外观会做更多的 ,你可能需要的东西。 不要让一个事实,即它是专为F#把你赶走- 你还是应该使用它直接从C#(或者有少量的互操作,使事情更清洁)。 当然,通过C#提供的函数式编程的支持应使工作比较容易。

示例屏幕截图:


(来源: ffconsultancy.com )

我建议第一(CodeProject上)选项,只是恰好满足您的要求的情况下,虽然它还没有。 F#的一个几乎肯定会不够好。 需要注意的是F#是一个功能性的语言(因此通常用于数学和科学应用),这很可能是为绘制图形绘制相关的任何功能的一个很好的选择 - 你甚至可能会考虑编写,它绘制在程序的一部分语言,尤其是如果它变得相对复杂。

希望帮助。



Answer 3:

它可能不是我的事,因为我从来没有使用C#/。NET框架/等,但看起来像一个矩阵的网格图。

我们被介绍到八度的统一和包装的一个允许我们目积矩阵。 对于ploting封装倍频采用的是GNUPLOT 。 我不知道你是否能勾什么到.NET 3.5,所以可能没有太大的帮助,但它工作在看看 。


(来源: network-theory.co.uk )



Answer 4:

取决于你想要多少就可以了花,也有很多的选择,我们做了各种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和它的端口,以托管代码

希望这是有益的



Answer 5:

我们使用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

(我试图让他们适当的联系,但因为我是新的我是不允许把在不止一个)



Answer 6:

我会建议使用Scinet图表从http://www.obacs.com 。 它有相当多的图表选项,并与替代品便宜得多。



Answer 7:

我建议一些谨慎使用Nevron。 我有丰富的经验,因为我一直在使用他们我所有的在企业级商业智能应用程序的图表,为过去5年。

还有很多喜欢Nevron:

  • 图表看起来很棒
  • 该API是相当不错的
  • 有大量的图表类型
  • 价格是正确的(他们比很多竞争对手,如登打士的便宜)
  • 技术支持是相当不错的,你可以一般直接邮寄开发者和从他们那里得到了良好的反响。 他们比高兴,如果你准备给一些输入的要求为你添加新的图表类型更多。 他们建立了一个巨大的维恩图组件对我来说:)

所有好的这么远吗? 对我来说,凶手必须是痛苦时,套件的新版本发布是参与。 我们使用Nevron我们的图表和Infragistics的为我们的UI组件。 我一般在半天升级我们的Infragistics的新版本的应用程序。 新Nevron升级可以采取什么长达4周。

他们已经改变了他们的对象模型很多次,有两个破接口的兼容性和改变你做事的方式的记录。 我有恐惧的感觉,每次我要大跳Nevron升级...

警告的另一个词,它们的轴标签的处理留下了很多待改进。 我花了很多时间试图让轴标签好看。 这种支持在过去的几个版本有所改善,但它仍然是还没有。



Answer 8:

你可能要考虑从超级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图形库产品页面



Answer 9:

这个名单怎么能没有至少提的完整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



Answer 10:

我一直很高兴与登打士图表在过去-你可以看到,如果适合您的需求。



Answer 11:

你可能也想尝试:

  • Telerik的图
  • DevExpress的图
  • Perpetuum公司的软件图ModelKit
  • Infragistics的NetAdvantage的WebChart


文章来源: Alternative to ComponentOne 3D Surface Map Chart [closed]