nzy3d - a C# api for 3d charts in wpf & winforms applications

1,262 views
Skip to first unread message

Benoit Beraud

unread,
Nov 12, 2014, 4:00:14 PM11/12/14
to jz...@googlegroups.com
Hi all,

For everyone interested, I have developed a C# port of jzy3d. It allows you to create true 3d charts of any surface, controllable via the mouse for inspection, and fully customizable. Even the plot area does not need to be square (already tested with circular shapes for instance). It is an unprecedented solution for visualisation of 3d data and datasets in C#. With this solution, you can walk around the 3d surface, as well as zoom in and out for details observations.

The control that draws the graphics is meant to be integrated in a WinForms application but it can also very easily be integrated in a WPF application just like the demo.

Just like jzy3d, nzy3d is based on OpenGL for 3d operations (many thanks to OpenTK for its one-to-one compatibility with OpenGL ! The API is almost identical to JOGL, that's amazing), and it has most of jzy3d features (even if it may be and will always be a little bit outdated compared to jzy3d). Thanks to the 3d engine, very advanced features are available like alpha blending, wire frames, nice color scales, ...

You can see a nice video of a small demo here or download the code source on jzy3d github repo or on my github repo.

Enjoy, and of course, all comments are welcome (either congratulations or requests ;o)).

Any help would also be very appreciated of course (either test cases, documentation, bug fixes, merge of jzy3d evolutions, ...)

Benoit




Martin Pernollet

unread,
Nov 12, 2014, 5:24:05 PM11/12/14
to Jzy3d, David Stranz
Hi,

Congratulation for this work, and many thanks for sharing!

I am running on MacOS. Do you have a particular suggestion to develop & run C# programs? Found Monodevelop but I don't know if that's the best?

I believe a part of your port was manual, another one was automated. I have few questions about this :
- how easy would it be to update nzy3d with future versions of jzy3d? Did you find jzy3d appropriately structured to minimize manual work? For example I wonder if the reference to a JOGL GL instance in almost every class of jzy3d should be wrapped in an abstraction hiding GL and easing conversion of a larger part of the framework.  
- is the language conversion tool open source?

Once again a huge thanks to share nzy3d with us!

Cheers,
Martin

--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "Jzy3d".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse jzy3d+un...@googlegroups.com.
Pour obtenir davantage d'options, consultez la page https://groups.google.com/d/optout.

Benoit

unread,
Nov 13, 2014, 2:58:23 PM11/13/14
to jz...@googlegroups.com, David_...@massspec.com
Hi,

In theory Monodevelop is the good way to go to run C# programs on Mac (or Linux by the way). I already used this to run C# programs on Linux. I will give it a try and let you know if it works well. At first I thought that OpenTK could be a problem but even this wonderfull library seams to run well on many operating system (according to their documentation).

Regarding the conversion, most of the work was done manually. At first I converted manually from Java to VB.Net, since at this time I needed a VB.Net library for my coworkers. And at this time, c# was clearly not my most fluent language. Finally, I realised that conversion from java to C# is much more straightforward since it is almost same (especially for code dealing directly with floats, doubles, ints, ...). So I made the conversion from VB.Net to C# thanksto the online converter of Telerik (www.telerik.com). I'm not sure an abstraction layer for GL would help a lot since in Java you have to pass the current gl instance in each call while in C# we use a static class. But since method names are almost identical, it's quite easy to do the conversion manually.

I'm not convinced (for now) that an automated tool will be capable of converting jzy3d to nzy3d for each release. So the most difficult task for the future of nzy3d will be to detect changes in jzy3d and port them in nzy3d manually. Or find the way to do the conversion automatically. Regarding the detection of changes, I think that git could help us in this task.

Anyway, thanks for your interest in nzy3d !

Benoît

Azly Hasan

unread,
Dec 18, 2014, 11:19:14 PM12/18/14
to jz...@googlegroups.com
Hi,

Many thanks for this great effort. I tried your wpfdemo and its working fine. I also tried to nzy3d test on winforms but its failed.

Can you provide some documentation / manual how to implement this chart into winforms?

Many thanks
Reply all
Reply to author
Forward
0 new messages