Here are some thoughts. Suppose that you have two points $A$ and $B$ which lie on a given circle of radius $r$. If $A$ and $B$ are diametrically opposed, then one can chose either half-circle (relative to the diameter $AB$) to get from $A$ to $B$, and the length of this path is $r\pi$. In general, with the aid of a picture, the arc length from $A$ to $B$ is $r\lvert\theta_B-\theta_A\rvert$, where $\theta_A$ and $\theta_B$ are the angles of $A$ and $B$, respectively. This is fairly easy to see by translating and scaling so your circle is centred at the origin and has radius $1$.
If one introduces a third point, $C$, then the total path length will be $r\lvert\theta_C-\theta_B\rvert + r\lvert\theta_B-\theta_A\rvert$, assuming, of course, that one traverses from $A$ to $B$, and then $B$ to $C$ (regardless of any change of direction at $B$.) If $A$, $B$ and $C$ satisfy $\theta_A<\theta_B<\theta_C$, then the arc length from $A$ to $B$ to $C$ is precisely $r(\theta_C-\theta_A)$. One must be careful if your arc "wraps over" the positive $x$-axis. (Adding another point at $(1,0)$ and the absolute angle above will help with that case.)
Note that your angles must be in radians for the above to work.
Edit: A bit more thinking about the problem yields the following. Rotate everything so that $A$ is at $(1,0)$ (so $\theta_A$ is now $0$, $\theta_B$ is now $\theta_B-\theta_A$ ($\pm2\pi$ if necessary) , and $\theta_C$ is now $\theta_C-\theta_A$ ($\pm2\pi$ if necessary)). Then $A$ and $C$ divide the circle into two arcs, say $C_1$ and $C_2$, and, unless $C$ is at $(-1,0)$, the arc lengths of $C_1$ and $C_2$ are different. Now $B$ lies on exactly one of these arcs, which we may assume is $C_1$.
- If $\theta_C>\pi$ and $\theta_B<\theta_C$ then $C_1$ is the longer of the two arcs.
- If $\theta_C>\pi$ and $\theta_B>\theta_C$ then $C_1$ is the shorter of the two arcs.
- If $\theta_C>\pi$ and $\theta_B>\theta_C$ then $C_1$ is the shorter of the two arcs.
- If $\theta_C>\pi$ and $\theta_B<\theta_C$ then $C_1$ is the longer of
the two arcs.
Now the geometry is done, we just need to figure out the length of the longer arc and the shorter arc. This is easy since the shorter arc is $r\theta_C$ if $0<\theta_C\leq \pi$, and $(2\pi - \theta_C)r$ if $\pi<\theta_C<2\pi$. (The other arc has length $2\pi r$ minus the shorter arc length.) This should be relatively simple to code.
One way to do it, given the points $A, B, C,$ the center $D$, and the radius $R$:
Compute the vector $\mathbf v = A - D,$ that is, a vector of length $R$ in the direction from $D$ to $A.$
Compute the vector $\mathbf u = B - D.$ If $\mathbf u$ would be in the opposite direction from $\mathbf v,$ then set $\mathbf u = C - D$ instead.
Project $\mathbf u$ onto $\mathbf v.$ Let the projected vector be
$\mathbf u_\parallel.$
The formula to compute this is
$$
\mathbf u_\parallel =
\left(\frac{\mathbf u \cdot \mathbf v}{\lVert\mathbf v \rVert^2}\right)
\mathbf v.
$$
Let $\mathbf u_\perp = \mathbf u - \mathbf u_\parallel.$
Then $\mathbf u_\perp$ is in the plane of the circle and is perpendicular to
$\mathbf v.$
Let $\mathbf w = \frac{R}{\lVert\mathbf u_\perp\rVert} \mathbf u_\perp,$
that is, $\mathbf w$ is a vector of length $R$ in the same direction as
$\mathbf u_\perp.$
Now you have two perpendicular vectors of length $R$ in the plane of the circle.
Alternatively, use some other method to get perpendicular vectors $\mathbf v$
and $\mathbf w$ of length $R$ in the plane of the circle.
There are various ways.
Once you have the vectors $\mathbf v$ and $\mathbf w,$
to generate a point $P$ on the circle simply choose an angle $\theta$ and let
$$ P = D + (\cos\theta)\mathbf v + (\sin\theta)\mathbf w.$$
You can get points at intervals of $x$ degrees by adding $x$ to the angle repeatedly.
Best Answer
The measure of the arc is the same as the measure of the central angle, call it $\theta$. Since you know the two points, you can find the distance between them, call it $d$.
This means that there is an isosceles triangle whose vertices are the two points you know, and the center of the circle (which you don't initially know. The two sides of the triangle that are equal are both radii of the circle, call them $r$.
You know the values of $\theta$ (the angle opposite the hypotenuse) and $d$ (the hypotenuse), but not that of $r$ (the length of the other two sides).
We can use the law of cosines to solve for $r$ in terms of $d$ and $\theta$:
$$d^2 = 2r^2 - 2r^2\cos \theta$$
$$ d^2 = r^2(2 - 2\cos \theta)$$
$$r = \boxed{\frac{d}{\sqrt{2-2\cos \theta}}}$$
Knowing the radius of the circle is enough information to reduce the number of possible points that could be the center to two (the other possibility is the point $a_0$ in your diagram, and we need a little more information to decide which of the two must be the center).