Welcome to Math.SE! Here is my sketch for the case of clockwise direction: initial point is $A$, the endpoint you want is $B$, and $C$ is the radius of the circle on which the arc lies.
I will use polar angles: you can see the description in Wikipedia. The formulas for conversion from polar to Cartesian (on the same wiki article) will also be used.
On the picture, $\theta$ is the polar angle of the direction in which the curve departs from point $A$. Since any radius of a circle is perpendicular to the circle, the polar angle of the vector $\vec{CA}$ is $\theta+\pi/2$. The length of $\vec{CA}$ is $r$. Therefore, its Cartesian coordinates are
$$\vec {CA} = ( r\cos(\theta+\pi/2), r\sin(\theta+\pi/2)) = ( -r\sin(\theta), r\cos(\theta)) $$
Next, we need the coordinates of the vector $\vec{CB}$. Its length is also $r$. Since $\angle ACB$ is $L/r$ radian, the polar angle of $\vec{CB}$ is $\theta+\pi/2-L/r$. Convert to Cartesian:
$$\vec {CB} = ( r\cos(\theta+\pi/2-L/r), r\sin(\theta+\pi/2-L/r)) = ( -r\sin(\theta-L/r), r\cos(\theta-L/r)) $$
Finally, $\vec{AB}=\vec{CB}-\vec{CA}$, which yields
$$\boxed{\vec {AB} = ( -r\sin(\theta-L/r)+r\sin(\theta), r\cos(\theta-L/r)-r\cos(\theta)) } $$
These can be rewritten using some trigonometric identities, but I don't think it would win anything. As a sanity check, consider what happens when $L=0$: the vector is zero, hence $B$ is the same as $A$. As an aside, if $r\to \infty$ the curve becomes a straight line segment, but figuring out the limit is an exercise in calculus. :-)
If the curve bends counterclockwise, the signs will be different in a few places. Namely, the polar angle of $\vec{CA}$ will be $\theta-\pi/2$, hence
$$\vec {CA} = ( r\sin(\theta), -r\cos(\theta)) $$
The polar angle of $\vec{CB}$ will be $\theta-\pi/2+L/r$, hence
$$\vec {CB} = ( r\sin(\theta+L/r), -r\cos(\theta+L/r)) $$
The conclusion in this case is
$$\boxed{\vec {AB} = ( r\sin(\theta+L/r)-r\sin(\theta), -r\cos(\theta+L/r)+r\cos(\theta))}$$
Later: a simpler solution for the case when $C$ is given. First, calculate the vector $\vec{CA}$ and convert it to polar coordinates using these formulas. Then either increase or decrease the angle by $L/r$, depending on counterclockwise/clockwise choice.
Since you wanted JavaScript, I made a jsfiddle and also copied the code below. The parameters are coordinates of A and C, as well as length of the arc and the direction. The radius $r$ is calculated within the function.
function findB(Ax, Ay, Cx, Cy, L, clockwise) {
var r = Math.sqrt(Math.pow(Ax - Cx, 2) + Math.pow(Ay - Cy, 2));
var angle = Math.atan2(Ay - Cy, Ax - Cx);
if (clockwise) {
angle = angle - L / r;
}
else {
angle = angle + L / r;
}
var Bx = Cx + r * Math.cos(angle);
var By = Cy + r * Math.sin(angle);
return [Bx, By];
}
document.write(findB(0, 1, 1, 0, 1, true));
One way is to calculate the angle to the first point
$\alpha = \arctan \left ( \frac{p1.y-cp.y}{p1.x-cp.x} \right )$
Then you add your angle and calculate the new point:
$p2.x = cp.x + r * cos (\alpha +\theta )$
$p2.y = cp.y + r * sin (\alpha +\theta )$
Best Answer
WLOG we may assume the centre of the circular arc to be origin and radius to be $r$. So parametrically the points on the arc may be defined as $(r\cos \theta,r\sin \theta)$ where $\theta \in [\alpha,\beta]$.
$D^2=(x-r\cos \theta)^2+(y-r\sin \theta)^2$
$=x^2+y^2+r^2-2r(xr\cos \theta+yr\sin \theta)$
$=x^2+y^2+r^2-2r\sqrt{x^2+y^2}\cos \left(\theta-\tan^{-1}\frac{y}{x}\right)$
Substituting for $\theta \in [\alpha,\beta]$ we may obtain the distance of any point on arc from $(x,y)$.
To obtain the shortest distance we find that value of $\theta \in [\alpha,\beta]$ for which $D^2$ is minimum. Corresponding to that particular $\theta$ we find the point $(r\cos \theta,r\sin \theta)$