Spójrz na to zdjęcie:Jak narysować tylko tę część łuku?
wiem, P1, P2, i centrum, które są 2d punktów. Znam również kąt p1-center-p2 i promień r.
Jak mogę narysować tylko wypełnioną część łuku, używając funkcji "Łuk"()?
EDIT
Co naprawdę trzeba zrobić, to, biorąc pod uwagę 2 punkty i kąt, narysować linię krzywą pomiędzy tymi 2 punkty takie, że kąt środkowy P1-P2 dany kąt.
To, co robię, to obliczyć środek i promień obwodu, który ma te 2 punkty, a teraz muszę narysować linię, która łączy p1 i p2 i ma podany kąt. To jest moja funkcja obliczyć środek circunference (które działa prawidłowo)
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];
}
Ale mam inne rzeczy wyciągnięte których nie chcę usunąć – Ivan
Co naprawdę potrzebne jest coś jak: moveTo (P1) arktyczno (P2, promień) – Ivan
To nie wydaje się działać, gdy ma p1 inny komponent x niż p2: http://i.imgur.com/AKpgv.png – Ivan