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(); }
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)); }