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); }
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; }
public void Constructor_Default() { RectangularCoordinate rc = default; PolarCoordinate pc = rc.ToPolar(); pc.R.AssertIsEqualTo(0); pc.Φ.AssertIsEqualTo(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.Φ); }
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); }
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变量的值无效"); } }
public static PointF ToPointF(this RectangularCoordinate r) => new PointF((float)r.X, (float)r.Y);
protected override void DoUpdate(PolarCoordinate data) { pLoc = data; rLoc = pLoc.Rectangular; }