public void UpdateVariables(string n, string x0) { this.N = int.Parse(n); this.X0 = int.Parse(x0); double minX = double.MaxValue; for (double i = 0; ; i -= 0.01) { if (1 < Math.Abs(TaylorSeriesSin(i) - Math.Sin(i))) { minX = i; break; } } minX = Math.Floor(minX * 2); double maxX = -1 * minX; double minY = double.MaxValue; for (double i = 0; i <= Math.PI * 2; i += 0.01) { if (Math.Sin(i) < minY) { minY = Math.Sin(i); } } minY = Math.Floor(minY * 2); double maxY = -1 * minY; DD.UpdateVariables(minX.ToString(), maxX.ToString(), minY.ToString(), maxY.ToString()); }
public void Draw(Canvas drawingCanvas, Canvas informationCanvas) { ParseEquations(); if (Variables.Count != 2) { MessageBox.Show("Can not draw Equations Diagram"); return; } DD = new DrawDiagram(drawingCanvas, informationCanvas); informationCanvas.Children.Clear(); drawingCanvas.Children.Clear(); double minY = Math.Min(Math.Floor(-1.5 * Math.Abs(FirstEquationFunction(0))), Math.Floor(-1.5 * Math.Abs(SecondEquationFunction(0)))); double maxY = -1 * minY; double minX = Math.Min(Math.Min(Math.Floor(-1.5 * Math.Abs(FirstEquationInverseFunction(minY))), -1.5 * Math.Abs(SecondEquationInverseFunction(minY))), Math.Min(Math.Floor(-1.5 * Math.Abs(FirstEquationInverseFunction(maxY))), -1.5 * Math.Abs(SecondEquationInverseFunction(maxY)))); double maxX = -1 * minX; if (answer() == true) { List <double> answers = new List <double>(); double determinant = Determinant(FactorMatrix); for (int i = 0; i < FactorMatrix.Length; i++) { answers.Add(Math.Round(Determinant(KeramerMatrix(FactorMatrix, ConstantMatrix, i)) / determinant)); } if (Variables.Contains('y') && Variables.Contains('x')) { if (Variables[0] == 'x') { minX = answers[0] - 4; maxX = answers[0] + 4; minY = answers[1] - 4; maxY = answers[1] + 4; } else { minX = answers[1] - 4; maxX = answers[1] + 4; minY = answers[0] - 4; maxY = answers[0] + 4; } } else { minX = answers[0] - 4; maxX = answers[0] + 4; minY = answers[1] - 4; maxY = answers[1] + 4; } } DD.UpdateVariables(minX.ToString(), maxX.ToString(), minY.ToString(), maxY.ToString()); DD.DrawChartLines(); DD.DrawChartLabels(); List <string> functions = new List <string>(); List <Brush> colors = new List <Brush>(); DD.DrawFunction(FirstEquationFunction, Brushes.Red); functions.Add("Line 1"); colors.Add(Brushes.Red); DD.DrawFunction(SecondEquationFunction, Brushes.Blue); functions.Add("Line 2"); colors.Add(Brushes.Blue); DD.DrawInformationLabels(functions, colors); }