public override Point2d ClosestPoint(Point2d from) { if (Linear) { return(new Line2d(start, end).ClosestPoint(from)); } Point2d ce = Center; Point2d oncirc = ce.Polar(ce.Angle(from), Radius); if (IsCirclePointOnArc(oncirc)) { return(oncirc); } return(from.ClosestPoint(start, end)); }
public override Point2d ClosestPoint(Point2d from) { return(from.ClosestPoint(Perpendicular(from))); }