Hallo,
ich brauche mal eure Hilfe bei einem Mathematischen Problem.
Ich arbeite im Moment an einem Programm, dass G-Code grafisch darstellen kann. Dazu verwende ich WPF. Speziell verwende ich einen Path um die Darstellung zu erreichen.
Das funktioniert auch so weit ganz gut. Nun habe ich aber ein Problem mit der Berechnung eines Ellipsenabschnitts.
Ich verwende ArcSegment um Kreise bzw. Ellipsen zu zeichnen.
Wie Ihr ja sicher wisst braucht ArcSegment folgende Parameter für eine Ellipse:
Aus dem G-Code bekomme ich aber
Ich muss also aus den Daten die mir der G-Code liefert noch die beiden Radien berechnen und ob der Abschnitt mehr als 180° hat.
Die Berechnung ob der Abschnitt mehr als 180° hat kann ich aus der entsprechenden Berechnung für Kreise ableiten (wenn die nicht sogar schon funktioniert).
Mein Problem ist also die Berechnung der beiden Radien. Kann mir da jemand weiter helfen?
Mir ist klar, dass dies eher ein Mathematisches als ein Programmierproblem ist. Aber ich hoffe das hier jemand die entsprechenden mathematischen Kenntnisse besitzt.
Gruß
Troubadix
Ohne zu wissen was G-Code ist...
Du hast den Mittelpunkt und einen Endpunkt, wie es scheint den längeren. Daraus kannst du mit Pythagoras den größeren Radius berechnen.
Das Verhältnis der Achsen bringt dich dann direkt zum kleineren.
Oder nicht?
Hallo chilic.
Daraus kannst du mit Pythagoras den größeren Radius berechnen.
Leider geht das nicht so einfach. Der Endpunkt kann ja irgendwo auf der Ellipse liegen. Ich würde also einen beliebigen Radius bekommen und nicht unbedingt den großen.
Schnelle Antwort, ohne lange drüber nachzudenken: leite ab und guck, wo die lokalen Maxima und Minima liegen. Darüber solltest du den kleinsten und größten Radius bekommen können. Kompliziert, aber was besseres fällt mir gerade nicht ein...
Ok dann wirds knifflig.
Dann anders.
Drehe den Endpunkt um den Mittelpunkt, und zwar um den Verdrehwinkel zurück (also negativ) und setze das ganze Gebilde so, dass der Mittelpunkt auf (0,0) steht. Dann kannst du einfach mit einer ungedrehten Ellipse im Koordinatensystem rechnen. Skizze machen!
Du hast also die Radien senkrecht aufeinander stehen und weißt das Verhältnis davon. Und du hast einen Punkt, durch den die Ellipse gehen muss. Hier wird anschaulich, dass es nur eine Ellipse geben kann, die mit dem gegebenen Verhältnis der Radien durch diesen Punkt geht.
Jetzt solltest du mit der Ellipsengleichung weiterkommen. In die setzt du das Verhältnis der Radien ein (ersetzt damit einen Radius durch den anderen) und setzt dann die Koordinaten des Punkts ein. Damit sollte dann einer der Radien rauskommen, den anderen kriegst du über das Verhältnis.
Danke für die Antworten.
Ich werde den Trick mit dem drehen und der Ellipsengleichung mal ausprobieren. Das klingt machbar.
[EDIT] Hab's hin bekommen.
Gruß
Troubadix