public static void plot(params System.Func <double, double, double>[] fxys)
        {
            var chart3d = new Computator.NET.Charting.Chart3D.UI.Chart3DControl
            {
                Mode = (fxys.Length > 1) ? Computator.NET.Charting.Chart3D.Chart3DMode.Points : Computator.NET.Charting.Chart3D.Chart3DMode.Surface
            };

            chart3d.SetChartAreaValues(-5, 5, -5, 5);

            foreach (var fxy in fxys)//TODO: function name?
            {
                chart3d.AddFunction(new Computator.NET.DataTypes.Function(fxy, Computator.NET.DataTypes.FunctionType.Real3D));
            }

            var plotForm = new Computator.NET.Charting.PlotForm(chart3d);

            plotForm.Show();
        }
        public static void plot(System.Collections.Generic.IEnumerable <double> x, System.Collections.Generic.IEnumerable <double> y, System.Collections.Generic.IEnumerable <double> z)
        {
            var xa = System.Linq.Enumerable.ToArray(x);
            var ya = System.Linq.Enumerable.ToArray(y);
            var za = System.Linq.Enumerable.ToArray(z);

            var chart3d = new Computator.NET.Charting.Chart3D.UI.Chart3DControl();

            var points = new System.Collections.Generic.List <Computator.NET.DataTypes.Point3D>();
            var n      = System.Math.Min(System.Math.Min(xa.Length, ya.Length), za.Length);

            for (var j = 0; j < n; j++)
            {
                points.Add(new Computator.NET.DataTypes.Point3D(xa[j], ya[j], za[j]));
            }


            chart3d.AddPoints(points);

            var plotForm = new Computator.NET.Charting.PlotForm(chart3d);

            plotForm.Show();
        }
        public static void plot(Computator.NET.DataTypes.Function f, double XMin = -5, double XMax = 5, double YMin = -5,
                                double YMax = 5, double quality = 0.5)
        {
            Computator.NET.DataTypes.Charts.IChart chart;

            switch (f.FunctionType)
            {
            case Computator.NET.DataTypes.FunctionType.Real2D:
            case Computator.NET.DataTypes.FunctionType.Real2DImplicit:
                chart = new Computator.NET.Charting.RealCharting.Chart2D();
                break;

            case Computator.NET.DataTypes.FunctionType.Real3D:
            case Computator.NET.DataTypes.FunctionType.Real3DImplicit:
                chart = new Computator.NET.Charting.Chart3D.UI.Chart3DControl();
                break;

            case Computator.NET.DataTypes.FunctionType.Complex:
            case Computator.NET.DataTypes.FunctionType.ComplexImplicit:
                chart = new Computator.NET.Charting.ComplexCharting.ComplexChart();
                break;

            case Computator.NET.DataTypes.FunctionType.Scripting:
            default:
                throw new System.ArgumentOutOfRangeException();
            }


            chart.SetChartAreaValues(XMin, XMax, YMin, YMax);
            chart.Quality = quality * 100;

            chart.AddFunction(f);

            var plotForm = new Computator.NET.Charting.PlotForm(chart);

            plotForm.Show();
        }