Alternative to ComponentOne 3D Surface Map Chart [

2019-02-07 04:50发布

We are investigating alterntive control libraries for a new project we are working on. One of the requirements is to display data in the form of a surface map, as per the ComponentOne Chart below.

alt text

We've used the C1 control in the past but are not entirely happy with it - so wondered if anyone can recommoned some alternatives.

Having some trouble finding any, so all help appreciated.

NB: This is a .NET 3.5 WinForms application

11条回答
唯我独甜
2楼-- · 2019-02-07 05:27

It might not be my business, since I have never used C#/.NET framework/etc, but that looks like a mesh plot of a matrix.

We got introduced to Octave in Uni and one of the packages allowed us to mesh-plot matrices. The package Octave uses for ploting is GNUPlot. I don't know if you what if you can hook that to .NET 3.5 so it might not help much, but it's work having a look.

octave mesh plot http://www.network-theory.co.uk/docs/octave3/mesh.png

查看更多
叼着烟拽天下
3楼-- · 2019-02-07 05:28

How can this list be complete without at least mentioning ILNumerics?

Disclaimer: I am biased as working in the ILNumerics team. But our Visualization Engine brings the most flexible and fastest surface plots available today. This is what our customers saying. You can try yourself for free - even directly on our website.

Edit: a very simple setup of an surface plot in ILNumerics would be achieved as follows:

enter image description here

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() }
  }
};

All scenes are composed out of simple objects in a scene graph. You can modify and control everything. This is specialized for scientific data. Try and modify this example online:

http://ilnumerics.net/ilcc.php?ilc=ia13490

查看更多
劳资没心,怎么记你
4楼-- · 2019-02-07 05:31

You may have already come across this, but I thought I'd point out the CodeProject article Plot 3D surfaces. I'm not sure if it's feature set is sufficient for your requirements, but it's worth investigating if you haven't already. The obvious advantage is that it's free and open source (so that you might expand it for your particular needs).

Example screenshot:

Another possible alternative that looks reasonably complete is the F# for Visualization library. This is commercial, but by the look of it would do more that what you might need. Don't let the fact that it is designed for F# put you off - you should still to use it directly from C# (or perhaps with a minor amount of interop to make things cleaner). Certainly, the functional programming support offered by C# should make the job relatively easy.

Example screenshot:

http://www.ffconsultancy.com/products/fsharp_for_visualization/images/surface_big.jpg

I've suggested the first (CodeProject) option just in case that happens to suit your requirements, though it may well not. The F# one would almost surely be good enough. Note that F# being a functional language (and hence typically used for mathematical and scientific applications), it is likely to be an excellent option for any functionality related to graph plotting - you may even want to consider writing the portion of program that does plotting in the language, especially if it gets relatively complex.

Hope that helps.

查看更多
疯言疯语
5楼-- · 2019-02-07 05:31

Depends on how much you want to spend on it, there are a lot of options, we do a variety of work in 3D graphics and have explored it extensively in the past Below I have provided some links to help you get started

Hope this is useful

查看更多
迷人小祖宗
6楼-- · 2019-02-07 05:32

I have been very happy with Dundas Chart in the past -you could see if that suits your needs.

查看更多
登录 后发表回答