In current implementation the tool always seeks the closest to the axis's point point on curve. This is not all we always need. Some time "right" point is not the closest. To resolve this issue i propose check "direction" of the axis. When we build the axis we set an angle. It can be used to compare points. Points those have the same direction should be selected first. If there are none of such points we should select from backward points list.
Additionally i propose to ignore points that are equal to the axis point. Our intention is always to return unique point.