Радиус каждого ar c определяется как расстояние между центром и начальной точкой. Поэтому, если вы пройдете конечную точку, расстояние которой отличается от центра, ar c не пройдет через конечную точку. В обеих ваших дугах эти расстояния различны, и поэтому вы получаете разрыв:
- C1-Sta1 = 0,65653607869255759
- C1-End1 = 0,65680375668022029
- C2-Sta2 = 1.7919012087063424
- C2-End2 = 1.7919007635301683
Так что если вы хотите, чтобы первый ar c заканчивался в точке, общей со вторым ar c, вам нужно рассматривать эту точку как начало, а затем изменить ориентацию ar c:
Plane pl = Plane.XY;
Point2D c1 = new Point2D(-0.655572, 0.160451);
Point2D c2 = new Point2D(-1.789206, 0.218072);
Point2D s1 = new Point2D(-0.008477, 0.049511);
Point2D s2 = new Point2D(0.000385, 0.1271105);
Point2D e1 = new Point2D(0.000385, 0.1271105);
Point2D e2 = new Point2D(0.002240, 0.177704);
Plane plInv = new Plane(pl.Origin, pl.AxisY, pl.AxisX);
Arc a1 = new Arc(plInv,plInv.Project(pl.PointAt(c1)), plInv.Project(pl.PointAt(e1)), plInv.Project(pl.PointAt(s1)));
a1.Reverse();
Arc a2 = new Arc(pl,c2,s2,e2);