Пример #1
0
 public TacanStateElement(PointF initLocation)
 {
     Guard.AssertNotNull(initLocation);
     screenLocation = initLocation;
     rLoc           = new RectangularCoordinate(0, 0, 0);
     pLoc           = new PolarCoordinate(0, 0, 0);
 }
        public void DerivativeByΦ(double x, double y, double first, double second)
        {
            PolarCoordinate p          = new RectangularCoordinate(x, y).ToPolar();
            var             derivative = _error.DerivativeByΦ(p);

            derivative.First.AssertIsEqualTo(first);
            derivative.Second.AssertIsEqualTo(second);
        }
Пример #3
0
        public void Update(PointF screenLocation, IScreenToCoordinateMapper mapper)
        {
            var rCoo = mapper.GetCoordinateLocation(screenLocation.X, screenLocation.Y);

            rLoc = new RectangularCoordinate(rCoo.X, rCoo.Y, 0);
            pLoc = rLoc.Polar;
            this.screenLocation = screenLocation;
        }
Пример #4
0
        public void Constructor_Default()
        {
            RectangularCoordinate rc = default;
            PolarCoordinate       pc = rc.ToPolar();

            pc.R.AssertIsEqualTo(0);
            pc.Φ.AssertIsEqualTo(0);
        }
Пример #5
0
        public void Cast_HyperspehricalEqualsRectangular(double x, double y)
        {
            var           rc = new RectangularCoordinate(x, y);
            Span <Number> cc = new Number[] { x, y };

            Span <Number>            buffer = stackalloc Number[1];
            var                      pc     = rc.ToPolar();
            HypersphericalCoordinate sc     = cc.ToSpherical(in buffer);

            sc.DimensionsCount.AssertIsEqualTo(2);
            sc.R.AssertIsEqualTo(pc.R);
            sc.Angles.Span.Single().AssertIsEqualTo(pc.Φ);
        }
Пример #6
0
        public void ToSpherical_Generalizes_ToPolar()
        {
            Number expression = (x - y).ToPower(2);

            var rc       = new RectangularCoordinate(x, y);
            var pc       = new PolarCoordinate(r, φ);
            var expected = expression.ToPolar(rc, pc);

            var cc     = new Number[] { x, y };
            var hc     = new HypersphericalCoordinate(r, new Number[] { φ });
            var actual = expression.ToSpherical(cc, hc);

            expected.AssertIsEqualTo(actual);
        }
Пример #7
0
        private string GetDisplayContent()
        {
            switch (DisplayModel.coordinateType)
            {
            case CoordinateType.Polar:
                var p = new RectangularCoordinate(currentCoordinateLocation.X, currentCoordinateLocation.Y, 0).Polar;
                return($"Az:{p.Az:0.0} ,Dis:{p.Dis:0.0}");

            case CoordinateType.Rectangular:
                return($"X:{currentCoordinateLocation.X} ,Y:{currentCoordinateLocation.Y}");

            case CoordinateType.Screen:
                return($"X:{currentScreenLcation.X} ,Y:{currentScreenLcation.Y}");

            default:
                throw new Exception("CoordinateType变量的值无效");
            }
        }
Пример #8
0
 public static PointF ToPointF(this RectangularCoordinate r) => new PointF((float)r.X, (float)r.Y);
Пример #9
0
 protected override void DoUpdate(PolarCoordinate data)
 {
     pLoc = data;
     rLoc = pLoc.Rectangular;
 }