I'm getting closer. It turns out that ArcCurve.start_angle is always 0.0, so I made a function that finds the actual start anlge, I then add that to the end angle for output.
def get_new_angle(center, point)
#center is the center point returned by AcrCurve.center
#point is the start point of the arc returned by ArcCurve.vertices[0].position
return Math;;atan(((center.y.to_f - point.y.to_f)/(center.x.to_f - point.x.to_f))).to_f.degrees.abs
end
Now the problem is arcs on the y axis are not correct.