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