I am trying to write a program to draw arcs with directions defined as tangent going between two positions.
I have two vector positions for an arc A and B which defines a start position (A) and end position (B). Each one also has a tangent which defines the direction of travel on the arc.
I am looking to find the smallest possible arc that fits the tangents so i can get the radius, origin and start/end angles (within range of -360 and 360 degrees).
So the information i have is:
- Start point A (vector)
- Start direction which is tangent (unit vector)
- End point B (vector)
- End direction which is tangent (unit vector)
Looking to find:
- Radius
- Origin
- Start Angle where $\theta$ is in range of [-360,360]
- End Angle where $\phi$ is in range of [-360,360]
Is it possible to find the arcs from just this information alone?
Thanks

The accepted answer provides excellent detail on the underlying structure of the problem. Based on the comments in response to the question, here's framework to get to an actual answer. Get a piece of paper and a pencil out to draw with me.
Given a point $A=(x_a,y_a)$ and a tangent $A'=(x'_a,y'_a)$, and another point $B=(x_b,y_b)$ (assuming B' works as well), we can plop this all in the coordinate plane. The normal passing through A would be $y-y_a = -\frac{x'_a}{y'_a}(x-x_a)$. Call that $N$. Now we need a line from $B$ intersecting $N$ at point $C$ such that $\overline{AC}=\overline{BC}$. Borrowing again from Sammy's answer, we can get the perpendicular bisector of $\overleftrightarrow{AB}$ and find where it intersects $N$. So... we find the midpoint of A and B, and the normal is again, simply the negative inverse of the slope: $y-\frac{y_a+y_b}2=-\frac{x_b-x_a}{y_b-y_a}(x-\frac{x_a+x_b}2)$. Call this $P$.
The intersection of $N$ and $P$ is a system of equations with a few too many variables for me to work through right now (it's 11:30 PM), but it get's you a point. It is the coveted intersection, $C$.
This, at long last, is the center of the circle. The distances AC or BC can serve as the radius. They are equal (see spoiler above).
Now, there are some caveats. This is assuming everything falls into place, as in, the tangent to B allows for an arc to form. Which is what I discuss below.
I program here and there too (Python and Java), so what I would do is have a user defined $A, A',$ and $B$. Unless B lies on A', I'm pretty sure there is always a solution. Any questions, please comment! This is a fun little project I might venture on now...