Question

Jetez un œil à cette photo:

enter image description here

Je connais P1, P2 et Centre, qui sont des points 2D. Je connais également l'angle P1-Center-P2 et le rayon r.

Comment puis-je dessiner uniquement la partie remplie de l'arc à l'aide de l'arc de la fonction de Canvas ()?

ÉDITER

Ce que je dois vraiment faire, c'est, étant donné 2 points et un angle, tracer une ligne incurvée entre ces 2 points de telle sorte que l'angle P1-Center-P2 est l'angle donné.

Ce que je fais, c'est calculer le centre et le rayon de la circonférence qui contient ces 2 points et maintenant je dois tracer la ligne qui rejoint P1 et P2 et a l'angle donné. Ceci est ma fonction pour calculer le centre de la circonférence (qui fonctionne correctement)

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];
}

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top