Finden Mittelpunkt eines Kreises gegeben zwei Punkte und radius
Schreibe ich eine G-Code-interpreter und habe Schwierigkeiten mit der Bestimmung der Mitte eines Kreises ist gegeben, wenn (X, Y) zwei Punkte auf dem Kreis und dem radius. Ich kann zeichnen einen Kreis aus 2 Punkten, wenn Sie angesichts der center coint, aber wenn ein radius-Wert ist gegeben, stattdessen kann ich nicht benutzen, um den einen Mittelpunkt.
Ich habe mir mehrere Beispiele, die geschrieben sind in verschiedenen Formen der Mathematik (Analysis, geometrie, trig, etc.) aber kann nicht übersetzen alle von Ihnen zu code. Mein Verständnis ist, dass die Werte, die gegeben werden, erzeugen zwei unterschiedliche center/Schnittpunkten. Diese sind, was ich brauche, um herauszufinden.
Den interpreter läuft auf einem Arduino und in C geschrieben. Wenn jemand nur gehen mir durch Sie in pseudo-code noch hat, wäre ich sehr dankbar.
Dank!
- Einen Kreis durch zwei Punkte mit einem radius hat zwei Lösungen.
- Check dieser beantworten, aber anstatt nur sqrt, verwenden Sie Math.Sqrt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In c#:
Gegeben, die Gleichung eines Kreises, und die Gleichungen der Mittelpunkte:
Einer Antwort sein:
Andere:
Vorausgesetzt, die Variablen für die Punkte gewesen, erklärte bereits, Ihr code sollte wie folgt Aussehen:
Quelle: http://mathforum.org/library/drmath/view/53027.html
Kann man nicht unbedingt immer einen eindeutigen Mittelpunkt geben zwei Punkte und einen radius. In der Tat gibt es drei unterschiedliche Fälle:
Fall 1:
passiert, wenn der Durchmesser kleiner ist als der Abstand zwischen den gegebenen Punkten. In diesem Fall gibt es keine Lösungen.
Fall 2:
passiert, wenn der Durchmesser genau gleich der ot den Abstand zwischen zwei Punkten. In diesem Fall gibt es eine triviale Lösung von
Fall 3:
passiert, wenn der angegebene Durchmesser ist mehr als der Abstand zwischen den beiden Punkten. In diesem Fall gibt es zwei Lösungen der Gleichungen:
dem Sie Lösungen finden, zum Beispiel von auf dieser Seite:
wo
q
ist der Abstand zwischen den beiden Punkten und[x3, y3]
ist der mittlere Punkt.Hier in diese Gist ich bin versucht zu implementieren diese in C, aber noch nicht fertig. fühlen Sie sich frei, um fortzufahren, wo ich verlassen haben.
Diese ruby-version den gleichen code, sollte jemand es brauchen, (Dank C# - code durch rookie1024)