private void PropogateParameters(ParamSnapshot paramSnapshot)
 {
     myDataContext.TargetDistance = paramSnapshot.GetValue(TargetDistanceKb);
     myDataContext.TargetBearing  = paramSnapshot.GetValue(TargetBearingInGrad);
     myDataContext.MyCourseInGrad = paramSnapshot.GetValue(OurCourseInGrad);
     myDataContext.MySpeedInKnot  = paramSnapshot.GetValue(OurSpeedInKnot);
     OurSpeedInKnot.Text          = paramSnapshot.GetValue(OurSpeedInKnot).ToString(CultureInfo.InvariantCulture);
     OurCourseInGrad.Text         = paramSnapshot.GetValue(OurCourseInGrad).ToString(CultureInfo.InvariantCulture);
 }
        private void InitBattleField()
        {
            MyPreviousSnapshot = new ParamSnapshot(this);
            var targetBearing      = TargetBearingInGrad.Text != "" ? double.Parse(TargetBearingInGrad.Text, CultureInfo.InvariantCulture) : 0;
            var targetDistance     = TargetDistanceKb.Text != "" ? double.Parse(TargetDistanceKb.Text, CultureInfo.InvariantCulture) : 0;
            var targetSpeedInKnot  = TargetSpeedInKnot.Text != "" ? double.Parse(TargetSpeedInKnot.Text, CultureInfo.InvariantCulture) : 0;
            var targetCourseInGrad = TargetCourseInGrad.Text != "" ? double.Parse(TargetCourseInGrad.Text, CultureInfo.InvariantCulture) : 0;
            var speedInKnot        = OurSpeedInKnot.Text != "" ? double.Parse(OurSpeedInKnot.Text, CultureInfo.InvariantCulture) : 0;
            var theCourse          = OurCourseInGrad.Text != "" ? double.Parse(OurCourseInGrad.Text, CultureInfo.InvariantCulture) : 0;
            var theDepth           = OurDepthInMeters.Text != "" ? double.Parse(OurDepthInMeters.Text, CultureInfo.InvariantCulture) : 0;

            var targetX = targetDistance * Math.Sin(Utils.DegreeToRadian(targetBearing));
            var targetY = targetDistance * Math.Cos(Utils.DegreeToRadian(targetBearing));

            myTargetShip = new Ship(targetX, targetY, targetSpeedInKnot / 360, targetCourseInGrad, theDepth,
                                    myDataContext.MyAccelerationInKnotSec / 360, myDataContext.MyAngularVelocityInGradSec,
                                    myDataContext.MyDepthChangeInMetersSec);
            myShip = new Ship(0, 0, speedInKnot / 360, theCourse, theDepth,
                              myDataContext.MyAccelerationInKnotSec / 360, myDataContext.MyAngularVelocityInGradSec,
                              myDataContext.MyDepthChangeInMetersSec);
            Redraw();
        }