using MultiWheelC.TrajectoryPlanning.Utils; namespace MultiWheelC.TrajectoryPlanning.Mapping; /// 以世界 mm 坐标表示的圆形障碍物。 public sealed class CircleObstacle : IMapObstacle { /// /// 创建圆形障碍物。 /// /// 参数:centerX、centerY 为圆心世界坐标,单位 mm;radiusMm 为半径,单位 mm。 /// 注意:构造不抛出几何校验异常,请通过 判断后再使用。 /// public CircleObstacle(float centerX, float centerY, float radiusMm) { CenterX = centerX; CenterY = centerY; RadiusMm = radiusMm; } /// 圆心世界 X 坐标,单位 mm。 public float CenterX { get; } /// 圆心世界 Y 坐标,单位 mm。 public float CenterY { get; } /// 圆的半径,单位 mm。 public float RadiusMm { get; } /// 圆心和半径均为有限数且半径不小于零时为 true;否则为 false。 public bool IsValid { get { return NumericGuard.IsFinite(CenterX) && NumericGuard.IsFinite(CenterY) && NumericGuard.IsFinite(RadiusMm) && RadiusMm >= 0f; } } }