void View_CalculateTrajectory(object sender, CalculateTrajectoryEventArgs e) { e.Trajectory = Model.GetTrajectory(e.StagesVariableValues, e.OutputParameters, e.id); }
async void FillCalculationResult() { Grid.Rows.Clear(); if ((Result != null) && (Result.Count != 0)) { Action <DataGridViewRow, int, StageOutputData> AddStageOutputDataInGrid = (Row, StartColumnIndex, StageOutputData) => { Row.Cells[StartColumnIndex + 0].Value = FormatConvert.ToString(StageOutputData.P_0 * 1E-3); Row.Cells[StartColumnIndex + 1].Value = FormatConvert.ToString(StageOutputData.m_0); Row.Cells[StartColumnIndex + 2].Value = FormatConvert.ToString(StageOutputData.m_k); Row.Cells[StartColumnIndex + 3].Value = FormatConvert.ToString(StageOutputData.m_t); Row.Cells[StartColumnIndex + 4].Value = FormatConvert.ToString(StageOutputData.m_o); Row.Cells[StartColumnIndex + 5].Value = FormatConvert.ToString(StageOutputData.m_g); Row.Cells[StartColumnIndex + 6].Value = FormatConvert.ToString(StageOutputData.m_to); Row.Cells[StartColumnIndex + 7].Value = FormatConvert.ToString(StageOutputData.m_su_pr); Row.Cells[StartColumnIndex + 8].Value = FormatConvert.ToString(StageOutputData.m_du); Row.Cells[StartColumnIndex + 9].Value = FormatConvert.ToString(StageOutputData.m_sux); }; int i = 1; foreach (var result in Result) { Grid.Rows.Add(); var row = Grid.Rows[Grid.Rows.Count - 1]; row.Cells[0].Value = i; row.Cells[1].Value = FormatConvert.ToString(result.Key.firstStageVariableValues.n_0); row.Cells[2].Value = FormatConvert.ToString(result.Key.secondStageVariableValues.n_0); row.Cells[3].Value = FormatConvert.ToString(result.Key.firstStageVariableValues.gamma_du); row.Cells[4].Value = FormatConvert.ToString(result.Key.secondStageVariableValues.gamma_du); row.Cells[5].Value = FormatConvert.ToString(result.Key.firstStageVariableValues.a_to * 1E-3); row.Cells[6].Value = FormatConvert.ToString(result.Key.secondStageVariableValues.a_to * 1E-3); row.Cells[7].Value = FormatConvert.ToString(result.Key.firstStageVariableValues.mu_su_pr); row.Cells[8].Value = FormatConvert.ToString(result.Key.secondStageVariableValues.mu_su_pr); row.Cells[9].Value = FormatConvert.ToString(result.Key.firstStageVariableValues.mu_k); row.Cells[10].Value = FormatConvert.ToString(result.Value.SecondStageOutputData.mu_k); row.Cells[11].Value = FormatConvert.ToString(result.Value.FirstStageOutputData.mu_sux); row.Cells[12].Value = FormatConvert.ToString(result.Value.SecondStageOutputData.mu_sux); AddStageOutputDataInGrid(row, 13, result.Value.FirstStageOutputData); AddStageOutputDataInGrid(row, 23, result.Value.SecondStageOutputData); row.Cells[33].Value = FormatConvert.ToString(result.Value.TrajectoryOutputParameters.phi_k1 * 180 / Math.PI); row.Cells[34].Value = FormatConvert.ToString(result.Value.TrajectoryOutputParameters.phi_0 * 180 / Math.PI); row.Cells[35].Value = FormatConvert.ToString(result.Value.TrajectoryOutputParameters.phi_k2 * 180 / Math.PI); row.Cells[36].Value = FormatConvert.ToString(result.Value.TrajectoryOutputParameters.t_1); row.Cells[37].Value = FormatConvert.ToString(result.Value.TrajectoryOutputParameters.t_2); row.Cells[38].Value = FormatConvert.ToString(result.Value.TrajectoryOutputParameters.H * 1E-3); row.Cells[39].Value = FormatConvert.ToString(result.Value.TrajectoryOutputParameters.V); row.Cells[40].Value = FormatConvert.ToString(result.Value.TrajectoryOutputParameters.nu * 180 / Math.PI); row.Cells[41].Value = FormatConvert.ToString(result.Value.mu_pg); VariantsComboBox.Items.Add("Вариант " + i.ToString()); i++; } await Task.Run(() => { Trajectories.Clear(); var id = GetCalculationInputData(); for (int j = 0; j < Result.Count; j++) { var Key = Result.Keys.ToList()[j]; var Args = new CalculateTrajectoryEventArgs(Key, Result[Key], id); CalculateTrajectory(this, Args); Trajectories.Add(Key, Args.Trajectory); } }); VariantsComboBox.SelectedIndex = 0; VariantsComboBox_SelectedIndexChanged(this, EventArgs.Empty); } }