Exemple #1
0
        private async void CalculateSonicBoomMenuItem_Click()
        {
            var CalculateArgs = new CalculateSonicBoomEventArgs(
                RocketGeometricalParameters,
                VehicleGeometricalParameters,
                RocketSonicBoomBallistics,
                VehicleSonicBoomBallistics,
                SonicBoomWeatherParameters);
            await Task.Run(() => CalculateSonicBoom(CalculateArgs));

            Action <List <SonicBoomParameters>, DataGridView> SetResults = (SonicBoomParameters, Grid) =>
            {
                Grid.Rows.Clear();
                if ((SonicBoomParameters == null) || (SonicBoomParameters.Count == 0))
                {
                    return;
                }
                Grid.Rows.Add(SonicBoomParameters.Count);
                for (int i = 0; i < SonicBoomParameters.Count; i++)
                {
                    var Row = Grid.Rows[i];
                    var sbp = SonicBoomParameters[i];
                    Row.Cells[0].Value = FormatConvert.ToString(sbp.Time);
                    Row.Cells[1].Value = FormatConvert.ToString(sbp.Height * 1E-3);
                    Row.Cells[2].Value = FormatConvert.ToString(sbp.MachNumber);
                    Row.Cells[3].Value = FormatConvert.ToString(sbp.OverPressure);
                    Row.Cells[4].Value = FormatConvert.ToString(sbp.SoundLevel);
                    Row.Cells[5].Value = FormatConvert.ToString(sbp.ImpactDistance * 1E-3);
                    Row.Cells[6].Value = FormatConvert.ToString(sbp.ImpactDuration);
                }
            };

            SetResults(CalculateArgs.RocketSonicBoomParameters, RocketSonicBoomGrid);
            SetResults(CalculateArgs.VehicleSonicBoomParameters, VehicleSonicBoomGrid);
        }
Exemple #2
0
        //SonicBoomCalculation
        void MainView_CalculateSonicBoom(CalculateSonicBoomEventArgs e)
        {
            Func <GeometricalParameters, bool> IsGeometricalParametersNull = Parameters => Parameters.CharacteristicArea * Parameters.CharacteristicLength * Parameters.Length * Parameters.MaximalArea == 0;
            List <SonicBoomParameters>         Rocket;
            List <SonicBoomParameters>         Vehicle;

            Model.CalculateSonicBoom(
                new SonicBoomCalculationInputData(e.RocketBallistics, e.RocketGeometricalParameters),
                new SonicBoomCalculationInputData(e.VehicleBallistics, e.VehicleGeometricalParameters),
                e.WeatherParameters,
                out Rocket,
                out Vehicle);
            e.RocketSonicBoomParameters  = Rocket;
            e.VehicleSonicBoomParameters = Vehicle;
        }