Domanda

Dai un'occhiata a questa foto:

enter image description here

Conosco P1, P2 e Center, che sono 2D punti. Conosco anche l'angolo P1-Center-P2 e il raggio R.

Come posso disegnare solo la parte piena dell'arco usando la funzione di tela arc ()?

MODIFICARE

Quello che devo davvero fare è, dato 2 punti e un angolo, tracciare una linea curva tra questi 2 punti in modo tale che l'angolo di P1-Center-P2 sia l'angolo dato.

Quello che faccio è calcolare il centro e il raggio della differenza che ha quei 2 punti e ora ho bisogno di tracciare la linea che si unisce a P1 e P2 e ha l'angolo dato. Questa è la mia funzione per calcolare il centro della differenza (che funziona correttamente)

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

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top