Take a look at this image:

I know p1, p2 and the center, which are 2d points. I also know the angle p1-center-p2 and the radius r.
How can I draw only the filled part of the arc using the canvas can () function?
EDIT
What I really need to do, given 2 points and an angle, draw a curved line between these two points, so that the angle p1-center-p2 is the given angle.
What I am doing is calculating the center and radius of the circle in which there are these 2 points, and now I need to draw a line connecting p1 and p2 and having a given angle. This is my function to calculate the center of the environment (which works correctly)
function getCenter(v0x, v0y, v1x, v1y, curve) { // result = p0 resx = parseFloat(v0x); resy = parseFloat(v0y); // tmpvec = (p1 - p0) * .5 tmpx = (v1x - v0x) / 2; tmpy = (v1y - v0y) / 2; // result += tmpvec resx = resx + tmpx; resy = resy + tmpy; // rotate 90 tmpvec tmptmpx = tmpx; tmptmpy = tmpy; tmpy = -tmptmpx; tmpx = tmptmpy; // tmpvec *= 1/tan(c/2) tmpx *= 1/Math.tan(curve/2); tmpy *= 1/Math.tan(curve/2); // return res + tmpvec return [resx+tmpx, resy+tmpy]; }
source share