public void PaintChartSpecters(CartesianChart cc, CartesianChart cc2) { Drawer pen = new Drawer(cc); Drawer pen2 = new Drawer(cc2); MainData maindata = new MainData(); double[] data = Threat.Data.Select(x => x.Damage).ToArray(); double logLength = Math.Ceiling(Math.Log((double)data.Length, 2.0)); int paddedLength = (int)Math.Pow(2.0, Math.Min(Math.Max(1.0, logLength), 14.0)); Complex[] arr_main = new Complex[paddedLength / 2]; for (int i = 0; i < paddedLength / 2; i++) { try { Complex arr = new Complex(data[i], 0); arr_main[i] = arr; } catch { Complex arr = new Complex(0, 0); arr_main[i] = arr; } } A_spector = maindata.FFTForward(arr_main); F_spector = maindata.FFTForwardQ(arr_main); pen.DrawColumnChart(A_spector, "Амплитудный спектр"); pen2.DrawColumnChart(F_spector, "Фазовый спектр"); }
public static void DrawMainData(CartesianChart cc1, CartesianChart cc2, double[] data) { try { Drawer pen = new Drawer(cc1); Drawer pen2 = new Drawer(cc2); Drawer pen3 = new Drawer(cc1); MainData maindata = new MainData(); double logLength = Math.Ceiling(Math.Log((double)data.Length, 2.0)); int paddedLength = (int)Math.Pow(2.0, Math.Min(Math.Max(1.0, logLength), 14.0)); Complex[] arr_main = new Complex[paddedLength / 2]; for (int i = 0; i < paddedLength / 2; i++) { try { Complex arr = new Complex(data[i], 0); arr_main[i] = arr; } catch { Complex arr = new Complex(0, 0); arr_main[i] = arr; } } a_spector = maindata.FFTForward(arr_main); f_spector = maindata.FFTForwardQ(arr_main); pen2.DrawColumnChart(a_spector, "Амплитудный спектр"); pen.DrawLinerChart(data, "Основные данные"); pen3.DrawAreas(AnaliticDataVM.ValueLevels, data.Length - 1); } catch { MessageBox.Show("Данные не загружены. Пожалуйста загрузите данные в нужном разделе."); } }