Bogen über 3 Punkte in bestimmte Richtung

Ich stecke bei der 8-Grad-Geometrie-Frage fest = (Ich muss den Bogen aus 3 Punkten in einer bestimmten Richtung zeichnen. Nehmen wir an, ich habe 3 vec2-Punkte P1, P2, P3. Ich habe es geschafft, den Bogenmittelpunkt zu finden.)

circleCenter: function (b, c, d) {
    var temp = Math.pow(c.x, 2) + Math.pow(c.y, 2);
    var bc = (Math.pow(b.x, 2) + Math.pow(b.y, 2) - temp) / 2.;
    var cd = (temp - Math.pow(d.x, 2) - Math.pow(d.y, 2)) / 2.;
    var det = (b.x - c.x) * (c.y - d.y) - (c.x - d.x) * (b.y - c.y);

    if (Math.abs(det) < 1e-14)
        return false;

    var circ = new THREE.Vector2((bc * (c.y - d.y) - cd * (b.y - c.y)) / det,
    ((b.x - c.x) * cd - (c.x - d.x) * bc) / det
    );

    return circ;
},

und Radius ...

    var startPoint = P1;
    var endPoint = P3;
    var centerPoint = P2;

    var centerPoint = this.circle(startPoint, centerPoint, endPoint);

    var r = Math.sqrt((startPoint.x - centerPoint.x) * (startPoint.x - centerPoint.x) + (startPoint.y - centerPoint.y) * (startPoint.y - centerPoint.y));

Der dritte Schritt ist das Finden von Winkeln, an denen ich feststeckte. Ich berechne Winkel auf diese Weise für jeden Punkt, den ich habe:

angleFromOrigin: function (c, p) {
    var x = p.x - c.x;
    var y = p.y - c.y;
    var theta = (180 / Math.PI * Math.atan2(y, x));
    return theta;
},

Aber dieser Ansatz gibt mir nicht a) Richtung, b) beinhaltet nicht immer den 3. Punkt (zeigt den entgegengesetzten Bogen auf dem Kreis)

Also muss ich die Winkel korrigieren, die ich habe, indem ich die Drehrichtung (im Uhrzeigersinn, gegen den Uhrzeigersinn) und den dritten Winkel in den Bogen einbeziehe. Dieser Teil gab mir einen Stapelüberlauf in meinem Kopf ... alle Links in Google wurden eins, was zum Schreiben einer Fragenseite führte. Ich kann nicht aus der Box raus ... Hilf mir, kollektiver Verstand))

Antworten auf die Frage(1)

Ihre Antwort auf die Frage