/// <summary>Initializes a new instance of the NugenCCalcComponent2D class</summary>
		public NugenCCalc2D()
		{
			///
			/// Required for Windows.Forms Class Composition Designer support
			///
			_functionParameters = new Explicit2DParameters();
			InitializeComponent();
			InitComponent();
		}
Beispiel #2
0
        public void FillListView()
        {
            this.lvSources.Items.Clear();

            ListViewItem item = null;

            item            = new ListViewItem();
            item.Group      = this.lvSources.Groups["Explicit Functions"];
            item.Text       = "Sin";
            item.Tag        = new Explicit2DParameters("Sin(x)");
            item.ImageIndex = 2;
            this.lvSources.Items.Add(item);

            item            = new ListViewItem();
            item.Group      = this.lvSources.Groups["Explicit Functions"];
            item.Text       = "Parabola";
            item.Tag        = new Explicit2DParameters("x*x");
            item.ImageIndex = 2;
            this.lvSources.Items.Add(item);

            item            = new ListViewItem();
            item.Group      = this.lvSources.Groups["Implicit Functions"];
            item.Text       = "Circle";
            item.Tag        = new Implicit2DParameters("x*x+y*y-25");
            item.ImageIndex = 2;
            this.lvSources.Items.Add(item);

            item            = new ListViewItem();
            item.Text       = "Rose";
            item.Tag        = new Explicit2DParameters("3*sin(4*x)", PlotMode.ByNumPoints, -10, 10, 0.1, 2000, true);
            item.ImageIndex = 2;
            item.Group      = this.lvSources.Groups["Polar Functions"];
            this.lvSources.Items.Add(item);

            item            = new ListViewItem();
            item.Text       = "Verziera";
            item.Tag        = new Explicit2DParameters("5*5*5/(x*x+5*5)");
            item.ImageIndex = 2;
            item.Group      = this.lvSources.Groups["Explicit Functions"];
            this.lvSources.Items.Add(item);

            item            = new ListViewItem();
            item.Text       = "Cardioid";
            item.Tag        = new Implicit2DParameters("(x*x+y*y)*(x*x+y*y)-10*x*(x*x+y*y)- 25*y*y");
            item.ImageIndex = 2;
            item.Group      = this.lvSources.Groups["Implicit Functions"];
            this.lvSources.Items.Add(item);

            item      = new ListViewItem();
            item.Text = "Archimedes Spiral";
            Explicit2DParameters polarParam = new Explicit2DParameters("x");

            polarParam.IsPolar = true;
            item.Tag           = polarParam;
            item.ImageIndex    = 2;
            item.Group         = this.lvSources.Groups["Polar Functions"];
            this.lvSources.Items.Add(item);

            item            = new ListViewItem();
            item.Text       = "Lemniscate Bernoulli";
            item.Tag        = new Implicit2DParameters("(x*x+y*y)*(x*x+y*y)-50*(x*x-y*y)");
            item.ImageIndex = 2;
            item.Group      = this.lvSources.Groups["Implicit Functions"];
            this.lvSources.Items.Add(item);

            item            = new ListViewItem();
            item.Text       = "Folium";
            item.Tag        = new Implicit2DParameters("x*x*x+y*y*y-3*x*y");
            item.ImageIndex = 2;
            item.Group      = this.lvSources.Groups["Implicit Functions"];
            this.lvSources.Items.Add(item);

            item            = new ListViewItem();
            item.Text       = "Hyperbola";
            item.Tag        = new Implicit2DParameters("x*x/3*3-y*y/3*3-1");
            item.ImageIndex = 2;
            item.Group      = this.lvSources.Groups["Implicit Functions"];
            this.lvSources.Items.Add(item);


            item      = new ListViewItem();
            item.Text = "Chrysanthemum Curve";
            Explicit2DParameters polarParam1 = new Explicit2DParameters("5*(1 + sin(11*x / 5)) - 4*sin(17*x / 3)*sin(17*x / 3)*sin(17*x / 3)*sin(17*x / 3)*sin(2*cos(3*x) - 28*x)*sin(2*cos(3*x) - 28*x)*sin(2*cos(3*x) - 28*x)*sin(2*cos(3*x) - 28*x)*sin(2*cos(3*x) - 28*x)*sin(2*cos(3*x) - 28*x)*sin(2*cos(3*x) - 28*x)*sin(2*cos(3*x) - 28*x)");

            polarParam1.IsPolar = true;
            item.Tag            = polarParam1;
            item.ImageIndex     = 2;
            item.Group          = this.lvSources.Groups["Polar Functions"];
            this.lvSources.Items.Add(item);

            try
            {
                item            = new ListViewItem();
                item.Text       = "Astroid";
                item.Tag        = new Implicit2DParameters("(1,01 + x*x + y*y)*(1,01 + x*x + y*y) - 4*1,01*1,01*x*x - 1");
                item.ImageIndex = 2;
                item.Group      = this.lvSources.Groups["Implicit Functions"];
                this.lvSources.Items.Add(item);
            }
            catch
            {
            }

            item            = new ListViewItem();
            item.Text       = "Tanh Spiral";
            item.Tag        = new Parametric2DParameters("sinh(2*t)/(cos(4*t)+cosh(2*t))", "sin(4*t)/(cos(4*t) + cosh(2*t))", PlotMode.ByNumPoints, -3, 3, 0.1, 2000);
            item.ImageIndex = 2;
            item.Group      = this.lvSources.Groups["Parametric Functions"];
            this.lvSources.Items.Add(item);


            item            = new ListViewItem();
            item.Text       = "Coth Spiral";
            item.Tag        = new Parametric2DParameters("-sinh(2*t)/(cos(8*t)-cosh(2*t))", "sin(8*t)/(cos(8*t)-cosh(2*t))", PlotMode.ByNumPoints, -1.57, 1.57, 0.1, 2000);
            item.ImageIndex = 2;
            item.Group      = this.lvSources.Groups["Parametric Functions"];
            this.lvSources.Items.Add(item);

            item            = new ListViewItem();
            item.Text       = "Butterfly Curve";
            item.Tag        = new Parametric2DParameters("cos(t)*(exp(cos(t))-2*cos(4*t)-sin(t/12)*sin(t/12)*sin(t/12)*sin(t/12)*sin(t/12))", "sin(t)*(exp(cos(t))-2*cos(4*t)-sin(t/12)*sin(t/12)*sin(t/12)*sin(t/12)*sin(t/12))", PlotMode.ByNumPoints, -5, 5, 0.1, 2000);
            item.ImageIndex = 2;
            item.Group      = this.lvSources.Groups["Parametric Functions"];
            this.lvSources.Items.Add(item);
        }
		private void PlotConstantFunction(IChartAdapter2D adapter, Explicit2DParameters explicitParameters)
		{
			ConstantFunctionPlotter plotter = 
				new ConstantFunctionPlotter((Constant)explicitParameters.Function);
			double[] result = null;
			switch(explicitParameters.PlotMode)
			{
				case PlotMode.ByNumPoints:
					result = plotter.Plot(explicitParameters.Min, explicitParameters.Max, explicitParameters.NumPoints);
					break;
                //case PlotMode.ByClientArea:
                //    throw new NotSupportedException("This type of PlotMode not supported");
				case PlotMode.ByStep:
					result = plotter.Plot(explicitParameters.Min, explicitParameters.Max, explicitParameters.Step);
					break;
			}

			if (!_automaticMode)
			{
				double[] tempArray = (double[])result.Clone();
				Array.Sort(tempArray);
				double min = tempArray[0];
				Array.Reverse(tempArray);
				double max = tempArray[0];
				adapter.SetAxes(explicitParameters.Min, explicitParameters.Max, min, max);
			}

			adapter.Plot(result, _series);

		}
Beispiel #4
0
		public void FillListView()
		{
            this.lvSources.Items.Clear();

            ListViewItem item = null;

            item = new ListViewItem();
            item.Group = this.lvSources.Groups["Explicit Functions"];
            item.Text = "Sin";
            item.Tag = new Explicit2DParameters("Sin(x)");
            item.ImageIndex = 2;
            this.lvSources.Items.Add(item);

            item = new ListViewItem();
            item.Group = this.lvSources.Groups["Explicit Functions"];
            item.Text = "Parabola";
            item.Tag = new Explicit2DParameters("x*x");
            item.ImageIndex = 2;
            this.lvSources.Items.Add(item);

            item = new ListViewItem();
            item.Group = this.lvSources.Groups["Implicit Functions"];
            item.Text = "Circle";
            item.Tag = new Implicit2DParameters("x*x+y*y-25");
            item.ImageIndex = 2;
            this.lvSources.Items.Add(item);

            item = new ListViewItem();
            item.Text = "Rose";
            item.Tag = new Explicit2DParameters("3*sin(4*x)", PlotMode.ByNumPoints, -10, 10, 0.1, 2000, true);
            item.ImageIndex = 2;
            item.Group = this.lvSources.Groups["Polar Functions"];
            this.lvSources.Items.Add(item);

            item = new ListViewItem();
            item.Text = "Verziera";
            item.Tag = new Explicit2DParameters("5*5*5/(x*x+5*5)");
            item.ImageIndex = 2;
            item.Group = this.lvSources.Groups["Explicit Functions"];
            this.lvSources.Items.Add(item);

            item = new ListViewItem();
            item.Text = "Cardioid";
            item.Tag = new Implicit2DParameters("(x*x+y*y)*(x*x+y*y)-10*x*(x*x+y*y)- 25*y*y");
            item.ImageIndex = 2;
            item.Group = this.lvSources.Groups["Implicit Functions"];
            this.lvSources.Items.Add(item);

            item = new ListViewItem();
            item.Text = "Archimedes Spiral";
            Explicit2DParameters polarParam = new Explicit2DParameters("x");
            polarParam.IsPolar = true;
            item.Tag = polarParam;
            item.ImageIndex = 2;
            item.Group = this.lvSources.Groups["Polar Functions"];
            this.lvSources.Items.Add(item);

            item = new ListViewItem();
            item.Text = "Lemniscate Bernoulli";
            item.Tag = new Implicit2DParameters("(x*x+y*y)*(x*x+y*y)-50*(x*x-y*y)");
            item.ImageIndex = 2;
            item.Group = this.lvSources.Groups["Implicit Functions"];
            this.lvSources.Items.Add(item);

            item = new ListViewItem();
            item.Text = "Folium";
            item.Tag = new Implicit2DParameters("x*x*x+y*y*y-3*x*y");
            item.ImageIndex = 2;
            item.Group = this.lvSources.Groups["Implicit Functions"];
            this.lvSources.Items.Add(item);

            item = new ListViewItem();
            item.Text = "Hyperbola";
            item.Tag = new Implicit2DParameters("x*x/3*3-y*y/3*3-1");
            item.ImageIndex = 2;
            item.Group = this.lvSources.Groups["Implicit Functions"];
            this.lvSources.Items.Add(item);


            item = new ListViewItem();
            item.Text = "Chrysanthemum Curve";
            Explicit2DParameters polarParam1 = new Explicit2DParameters("5*(1 + sin(11*x / 5)) - 4*sin(17*x / 3)*sin(17*x / 3)*sin(17*x / 3)*sin(17*x / 3)*sin(2*cos(3*x) - 28*x)*sin(2*cos(3*x) - 28*x)*sin(2*cos(3*x) - 28*x)*sin(2*cos(3*x) - 28*x)*sin(2*cos(3*x) - 28*x)*sin(2*cos(3*x) - 28*x)*sin(2*cos(3*x) - 28*x)*sin(2*cos(3*x) - 28*x)");
            polarParam1.IsPolar = true;
            item.Tag = polarParam1;
            item.ImageIndex = 2;
            item.Group = this.lvSources.Groups["Polar Functions"];
            this.lvSources.Items.Add(item);

            try
            {
                item = new ListViewItem();
                item.Text = "Astroid";
                item.Tag = new Implicit2DParameters("(1,01 + x*x + y*y)*(1,01 + x*x + y*y) - 4*1,01*1,01*x*x - 1");
                item.ImageIndex = 2;
                item.Group = this.lvSources.Groups["Implicit Functions"];
                this.lvSources.Items.Add(item);
            }
            catch
            {

            }

            item = new ListViewItem();
            item.Text = "Tanh Spiral";
            item.Tag = new Parametric2DParameters("sinh(2*t)/(cos(4*t)+cosh(2*t))", "sin(4*t)/(cos(4*t) + cosh(2*t))", PlotMode.ByNumPoints, -3, 3, 0.1, 2000);
            item.ImageIndex = 2;
            item.Group = this.lvSources.Groups["Parametric Functions"];
            this.lvSources.Items.Add(item);


            item = new ListViewItem();
            item.Text = "Coth Spiral";
            item.Tag = new Parametric2DParameters("-sinh(2*t)/(cos(8*t)-cosh(2*t))", "sin(8*t)/(cos(8*t)-cosh(2*t))", PlotMode.ByNumPoints, -1.57, 1.57, 0.1, 2000);
            item.ImageIndex = 2;
            item.Group = this.lvSources.Groups["Parametric Functions"];
            this.lvSources.Items.Add(item);

            item = new ListViewItem();
            item.Text = "Butterfly Curve";
            item.Tag = new Parametric2DParameters("cos(t)*(exp(cos(t))-2*cos(4*t)-sin(t/12)*sin(t/12)*sin(t/12)*sin(t/12)*sin(t/12))", "sin(t)*(exp(cos(t))-2*cos(4*t)-sin(t/12)*sin(t/12)*sin(t/12)*sin(t/12)*sin(t/12))", PlotMode.ByNumPoints, -5, 5, 0.1, 2000);
            item.ImageIndex = 2;
            item.Group = this.lvSources.Groups["Parametric Functions"];
            this.lvSources.Items.Add(item);			 
		}