Windows platform specific WinForms user control and OpenGL support (windows only). Reference this package to start creating graphical apps on Windows! Free trial licenses are available here: https://ilnumerics.net/download.html.
$ dotnet add package ILNumerics.Drawing.PlatformsThis package is part of ILNumerics Ultimate VS - a powerful framework for technical application development on .NET.
General info about ILNumerics: (specific info about this package are found at the end)
ILNumerics provides packages for the convenient authoring of:
ILNumerics is compatible with all .NET runtimes since .NET Framework 4.6.1., including .NET Core, .NET 8.0. and newer.
We've invested great effort to auto-translate and keep up to date the quasi standard algorithms for all computational routines, including linear algebra, FFT and optimization methods. These purely managed implementations are the first to bring professional robustness and precision to .NET. Hence, ILNumerics runs efficiently on any platform supported by .NET! Optionally, native libraries can be used to replace the managed default implementation. For the Windows platform, such native, optimized libraries are provided, too.
ILNumerics apps are typically much faster than alternatives: faster to implement and faster during execution. We've invented groundbreaking new auto-parallelization techniques which make full use of modern, parallel hardware with unseen automatic efficiency. Further, with ILNumerics the size of your data is not limited by the managed heap. ILNumerics n-dimensional Array<T> bridges the gap from high-level mathematical expressions down to native memory robustly, efficiently, and transparently. Moreover, it allows to connect your data to any 3rd party interface without hassle.
Interactive, professional, technical visualizations in 2D and 3D.
This package provides UI controls and classes performing dynamic rendering of ILNumerics Visualization Engine (ILNumerics.Drawing nuget package) scene graphs. The controls perform hardware accelerated, interactive rendering on Windows on .NET Framework, .NET Core and .NET5+ applications and directly support WindowsForms and WPF projects.
For robust distribution on legacy machines and on non-Windows platforms a fully featured software renderer is provided. Mouse eventing (bubbling) and picking is supported as well as the standard mouse interactions: rotation, pan, and zoom. All scenes and sub-parts thereof are designed to be dynamically updatable.
For static visualizations and offscreen rendering on any platform start with ILNumerics.Drawing.
For more / faster / more complex plotting types see the ILNumerics.Toolboxes.Drawing2 package.
In order to write efficient algorithms, use the Computing Engine package. While not strictly required, it is a time and code saver for complex data pre-/post processing tasks.
Create a new C# Windows Forms application.
reference the ILNumerics.Drawing.Platforms package in your project.
reference the Computing Engine package in your project.
Include the following 'using' directives (C#) on top of your Form1.cs file:
using ILNumerics;
using ILNumerics.Drawing;
using ILNumerics.Drawing.Plotting;
using static ILNumerics.ILMath;
using static ILNumerics.Globals;
Add the following code to the Form1 class:
ILNumerics.Drawing.Controls.WinForms.Panel m_panel;
protected override void OnLoad(EventArgs e) {
base.OnLoad(e);
// create and wire up a new 3D panel:
m_panel = new ILNumerics.Drawing.Controls.WinForms.Panel();
m_panel.Load += panel_Load;
Controls.Add(m_panel);
// any size is fine:
m_panel.Dock = DockStyle.Fill;
}
private void panel_Load(object sender, EventArgs e) {
// simple example data
Array<float> A = tosingle(ILNumerics.SpecialData.sinc(30, 20));
// a new 3D surface
var surf = new Surface(A, colormap: Colormaps.Copper);
// add a colorbar
surf.Add(new Colorbar());
// add a plot cube and insert the surface
m_panel.Scene.Add(new PlotCube(twoDMode: false) { surf });
}
Hit F5, resize or rotate the scene.
read the beginners guide for more examples (including WPF setup) and start writing sucessful visualizations!