Exemplo n.º 1
0
        private void Shoot()
        {
            int            lRtn;
            double         lDR = 0; //Trajectory Range increment.
            double         lCR;     //Current Range.
            TrajectoryData lTD;

            lRtn = _MyBallisticsCalculator.PreflightCheck();
            if (lRtn < 0)
            {
                PostFlightCheck(lRtn);
                return;
            }
            lDR             = 1;
            lCR             = lDR;
            _MyTrajectories = new ObservableCollection <TrajectoryData>();
            while (lCR < _MyBallisticsCalculator.ShotDistance)
            {
                lTD               = new TrajectoryData();
                lTD.Range         = lCR;
                lTD.MuzzleDrop    = MyBallisticsCalculator.MuzzleDrop(lCR);
                lTD.SightDelta    = MyBallisticsCalculator.SightDelta(lCR);
                lTD.Velocity      = MyBallisticsCalculator.Velocity(lCR);
                lTD.Energy        = MyBallisticsCalculator.Energy(MyBallisticsCalculator.BulletWeight, lCR);
                lTD.SpinRate      = MyBallisticsCalculator.SpinRate(lCR);
                lTD.GyroStability = MyBallisticsCalculator.GyroscopicStability(MyBallisticsCalculator.Velocity(lCR), MyBallisticsCalculator.TempF, MyBallisticsCalculator.BaroPressure);
                lTD.HorizDev      = MyBallisticsCalculator.TotalHorizontalDrift(lCR);
                lTD.CoriolisH     = MyBallisticsCalculator.GetCoriolisHoriz(lCR);
                lTD.CoriolisV     = MyBallisticsCalculator.GetCoriolisVert(lCR);
                lTD.SpinDrift     = MyBallisticsCalculator.GetSpinDrift(lCR);
                lTD.WindDeflect   = MyBallisticsCalculator.WindDriftDegrees(_MyBallisticsCalculator.WindSpeed, _MyBallisticsCalculator.WindDirectionDeg, lCR);
                lTD.FlightTime    = MyBallisticsCalculator.FlightTime(lCR);
                lCR              += lDR;
                if (lCR >= _MyBallisticsCalculator.ShotDistance)
                {
                    lTD               = new TrajectoryData();
                    lTD.Range         = _MyBallisticsCalculator.ShotDistance;
                    lTD.MuzzleDrop    = MyBallisticsCalculator.MuzzleDrop(_MyBallisticsCalculator.ShotDistance);
                    lTD.SightDelta    = MyBallisticsCalculator.SightDelta(_MyBallisticsCalculator.ShotDistance);
                    lTD.Velocity      = MyBallisticsCalculator.Velocity(_MyBallisticsCalculator.ShotDistance);
                    lTD.Energy        = MyBallisticsCalculator.Energy(MyBallisticsCalculator.BulletWeight, _MyBallisticsCalculator.ShotDistance);
                    lTD.SpinRate      = MyBallisticsCalculator.SpinRate(lCR);
                    lTD.GyroStability = MyBallisticsCalculator.GyroscopicStability(MyBallisticsCalculator.Velocity(_MyBallisticsCalculator.ShotDistance), MyBallisticsCalculator.TempF, MyBallisticsCalculator.BaroPressure);
                    lTD.HorizDev      = MyBallisticsCalculator.TotalHorizontalDrift(_MyBallisticsCalculator.ShotDistance);
                    lTD.CoriolisH     = MyBallisticsCalculator.GetCoriolisHoriz(_MyBallisticsCalculator.ShotDistance);
                    lTD.CoriolisV     = MyBallisticsCalculator.GetCoriolisVert(_MyBallisticsCalculator.ShotDistance);
                    lTD.SpinDrift     = MyBallisticsCalculator.GetSpinDrift(_MyBallisticsCalculator.ShotDistance);
                    lTD.WindDeflect   = MyBallisticsCalculator.WindDriftDegrees(_MyBallisticsCalculator.WindSpeed, _MyBallisticsCalculator.WindDirectionDeg, _MyBallisticsCalculator.ShotDistance);
                    lTD.FlightTime    = MyBallisticsCalculator.FlightTime(_MyBallisticsCalculator.ShotDistance);
                }
                _MyTrajectories.Add(lTD);
            }
            RaisePropertyChanged(nameof(MyTrajectories));
            LoadCharts();
        }
Exemplo n.º 2
0
        private void GetTestBulletBC()
        {
            double lBC = 0; BulletShapeEnum lShape;

            if (_frmBCcalc == null)
            {
                return;
            }
            _frmBCcalc.txtBulletDia.GetBindingExpression(System.Windows.Controls.TextBox.TextProperty).UpdateSource();
            _frmBCcalc.txtBulletWt.GetBindingExpression(System.Windows.Controls.TextBox.TextProperty).UpdateSource();
            lShape        = (BulletShapeEnum)Enum.Parse(typeof(BulletShapeEnum), _TestBulletType);
            lBC           = MyBallisticsCalculator.EstimateBC(_TestBulletWeight, _TestBulletDiameter, lShape);
            _TestBulletBC = Math.Round(lBC, 4);
            RaisePropertyChanged(nameof(TestBulletBC));
        }