// Formatowanie wyniku do jednej z trzech postaci private void ScoreDisplayF(List <LiczbaZespolona> list) { RooTofComplex complex = new RooTofComplex(); StringBuilder builder = new StringBuilder(); LiczbaZespolona z1 = new LiczbaZespolona((double)userControlLiczbaZespolonaZ1.Re, (double)userControlLiczbaZespolonaZ1.Im); if (TrigonometryChecked) { scoreDisplay1.TextBoxScoreText = ""; for (int i = 0; i < list.Count; i++) { builder.AppendLine("W" + i + " = " + complex.Trigon(list[i], z1, Convert.ToDouble(1 / numericUpDownRoot.Value))); } } else if (CoordinatesChecked) { scoreDisplay1.TextBoxScoreText = ""; for (int i = 0; i < list.Count; i++) { builder.AppendLine("W" + i + " = " + list[i].ToString()); } } else if (CannonicChecked) { scoreDisplay1.TextBoxScoreText = ""; for (int i = 0; i < list.Count; i++) { builder.AppendLine("W" + i + " = " + complex.Canonic(list[i])); } } scoreDisplay1.TextBoxScoreText = builder.ToString(); }
// pełni dwie funkcje - dodawanie w op. artymetycznych i pierwiastkowanie private void ButtonDodaj_Click(object sender, EventArgs e) { if (userControlOprationType.IsOn1 == true && userControlOprationType.IsOn2 == false) { LiczbaZespolona z1 = new LiczbaZespolona((double)userControlLiczbaZespolonaZ1.Re, (double)userControlLiczbaZespolonaZ1.Im); LiczbaZespolona z2 = new LiczbaZespolona((double)userControlLiczbaZespolonaZ2.Re, (double)userControlLiczbaZespolonaZ2.Im); zespolonas.Clear(); zespolonas.Add(z1 + z2); ScoreDisplayF(zespolonas); userControlVectorChart1.FillChartElemOp(z1, z2, zespolonas[0]); } else if (userControlOprationType.IsOn1 == false && userControlOprationType.IsOn2 == true) { LiczbaZespolona z1 = new LiczbaZespolona((double)userControlLiczbaZespolonaZ1.Re, (double)userControlLiczbaZespolonaZ1.Im); RooTofComplex rooTofComplex = new RooTofComplex(); int root = (int)numericUpDownRoot.Value; zespolonas.Clear(); for (int i = 0; i < root; i++) { zespolonas.Add(rooTofComplex.Rownanie(z1, root, i)); } ScoreDisplayF(zespolonas); userControlVectorChart1.FillChartRotOp(zespolonas); } }
// liczba zespolona, współczynnik potęgi n, dla k=0,1,...,n-1 public LiczbaZespolona Rownanie(LiczbaZespolona liczba, int n, int k) { LiczbaZespolona z = new LiczbaZespolona(); double fi = Math.PI * Fi(liczba) / 180; z.Re = Math.Round(Math.Cos((fi + (2 * k * Math.PI)) / n), 4); z.Im = Math.Round(Math.Sin((fi + (2 * k * Math.PI)) / n), 4); return(z); }
private void buttonOdejmnij_Click(object sender, EventArgs e) { LiczbaZespolona z1 = new LiczbaZespolona((double)userControlLiczbaZespolonaZ1.Re, (double)userControlLiczbaZespolonaZ1.Im); LiczbaZespolona z2 = new LiczbaZespolona((double)userControlLiczbaZespolonaZ2.Re, (double)userControlLiczbaZespolonaZ2.Im); zespolonas.Clear(); zespolonas.Add(z1 - z2); ScoreDisplayF(zespolonas); userControlVectorChart1.FillChartElemOp(z1, z2, zespolonas[0]); }
public string Canonic(LiczbaZespolona liczba) { if (liczba.Im < 0) { return(liczba.Re.ToString("F4") + " - " + (liczba.Im * (-1)).ToString("F4") + " i"); } else { return(liczba.Re.ToString("F4") + " + " + liczba.Im.ToString("F4") + " i"); } }
private void buttonDziel_Click(object sender, EventArgs e) { LiczbaZespolona z1 = new LiczbaZespolona((double)userControlLiczbaZespolonaZ1.Re, (double)userControlLiczbaZespolonaZ1.Im); LiczbaZespolona z2 = new LiczbaZespolona((double)userControlLiczbaZespolonaZ2.Re, (double)userControlLiczbaZespolonaZ2.Im); zespolonas.Clear(); zespolonas.Add(z1 / z2); ScoreDisplayF(zespolonas); if ((Math.Pow(z2.Re, 2) + Math.Pow(z2.Im, 2)) != 0) { userControlVectorChart1.FillChartElemOp(z1, z2, zespolonas[0]); } }
// Czyszczenie formatki - funkcja private void ClearWhole() { userControlLiczbaZespolonaZ1.Re = 0; userControlLiczbaZespolonaZ1.Im = 0; userControlLiczbaZespolonaZ2.Re = 0; userControlLiczbaZespolonaZ2.Im = 0; numericUpDownRoot.Value = 2; LiczbaZespolona z1 = new LiczbaZespolona((double)userControlLiczbaZespolonaZ1.Re, (double)userControlLiczbaZespolonaZ1.Im); LiczbaZespolona z2 = new LiczbaZespolona((double)userControlLiczbaZespolonaZ2.Re, (double)userControlLiczbaZespolonaZ2.Im); LiczbaZespolona z3 = new LiczbaZespolona((double)userControlLiczbaZespolonaZ2.Re, (double)userControlLiczbaZespolonaZ2.Im); userControlVectorChart1.FillChartElemOp(z1, z2, z3); zespolonas.Clear(); }
private float Fi(LiczbaZespolona liczba) // argument liczby z { float fi = 0; double cosFi = liczba.Re / ModulZ(liczba); double sinFi = liczba.Im / ModulZ(liczba); fi = (float)(Math.Asin(sinFi) * (180 / Math.PI)); if (cosFi < 0) { if (sinFi > 0) { fi = 180 - fi; } else { fi = -fi - 180; } } return(fi); }
public string Trigon(LiczbaZespolona liczba, LiczbaZespolona zespolona, double n) { return(ModulZ(zespolona, n) + " (cos " + Fi(liczba).ToString("F2") + " + i sin " + Fi(liczba).ToString("F2") + ")"); }
private double ModulZ(LiczbaZespolona liczba, double n = 1) // moduł liczby z { return(Math.Pow(Math.Sqrt(Convert.ToDouble((liczba.Im * liczba.Im) + (liczba.Re * liczba.Re))), n)); }