Exemplo n.º 1
0
 void View_CalculateTrajectory(object sender, CalculateTrajectoryEventArgs e)
 {
     e.Trajectory = Model.GetTrajectory(e.StagesVariableValues, e.OutputParameters, e.id);
 }
Exemplo n.º 2
0
        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);
            }
        }