Kreisbogen über winkel und Radius definieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
ttschhj
User
Beiträge: 6
Registriert: Montag 22. Januar 2018, 12:42

Hallo Python Gemeinde,

ich versuche momentan einen Kreisbogen zu definieren. Ich habe einen festen Anfangs- und Endpunkt für den Bogen gegeben und muss nun den geeigneten Mittelpunkt dazu finden. Die Berechnung des Mittelpunktes (origin) soll über einen Winkel und Radius des Kreisauschnittes definiert sein. Um den origin point dann richtig zu setzen, muss ich die Koordinaten berechnen. Kennt jemand eine Art mathematische Funktion, wo Winkel und/oder Raduis variabel sind und ich auf die Koordinaten des Mittelpunktes schließen kann?

C#
# Drei-Punkt-Bogen skizzieren
origin = Point2D.Create(MM(-2428.67745342585), MM(1373.63100108961))
start = Point2D.Create(MM(197.20092520994), MM(62.9348480282863))
end = Point2D.Create(MM(468.860228524157), MM(907.329546324058))
result = SketchArc.Create(origin, start, end)
# EndBlock

Vielen Dank im Voraus.

Gruß Jo
Benutzeravatar
noisefloor
User
Beiträge: 3829
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

wenn du nur zwei Punkte hast, dann ist das ganze unterbestimmt und es gibt unendliche viele Lösungen. Du brauchst noch eine weitere Angabe, damit das eindeutig lösbar ist.

Gruß, noisefloor
ttschhj
User
Beiträge: 6
Registriert: Montag 22. Januar 2018, 12:42

Hallo,

danke für die Antwort.
Genau ich habe zwei Punkte fix. Den Startpunkt und den Endpunkt. Mir fehlt also noch die Definition des origin(Mittel) Punktes. Dieser Punkt darf aber Variabel sein, d.h. er ist abhängig von der Bogenlänge, dem Winkel und dem Radius. In meiner Syntax muss ich jedoch Koordinaten des Mittelpunktes angeben. Jetzt stellt sich mir die Frage, ob es eine mathematische Beziehung gibt, wie man anhand Radius/Winkel/Bogenlänge die Koordinaten des Mittelpunktes bestimmen kann.
__deets__
User
Beiträge: 14480
Registriert: Mittwoch 14. Oktober 2015, 14:29

Na Radius zb ist doch trivial. Das ist ja der Schnittpunkt der zwei Kreise in dem Radius um die gegebenen Punkte rum. Und Kreisschnitt kann man sich mal ergoogeln.

Wobei da ja zwei Ergebnisse kommen. Da musst du auch noch disambiguieren.

Winkel ist Gradenschnitt - zwei Graden von den Punkten, die sich schneiden und den gegebenen Winkel haben. Auch hier wieder zwei Ergebnisse.

Bogenlänge fällt mir noch nix zu ein.
ttschhj
User
Beiträge: 6
Registriert: Montag 22. Januar 2018, 12:42

Hallo zusammen,

https://www.google.de/search?q=kreisbog ... 8BO9_NRF3M:

Das zb wäre der Kreisbogen den ich suche bzw. ja Kreisausschnitt. Die Außenpunkte sind fix. Der Cords vom Mittelpunkt bleiben ja normalerweise in Abhängigkeit des Radius bzw. dem Winkel..Je nachdem wie "gebogen oder flach" der Kreisbogen ausfallen soll. Und diese Beziehung suche ich, sprich Cords-Mittelpunkt zu Winkel/Radius

Gruß Jo
__deets__
User
Beiträge: 14480
Registriert: Mittwoch 14. Oktober 2015, 14:29

Haben wir schon Verstanden. Hast du meine Antwort verstanden?
Benutzeravatar
noisefloor
User
Beiträge: 3829
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

@ttschj: das Ergebnis ist aber nicht eindeutig - wie __deets__ schon sagte, gibt es zwe mögilche Ergebnisse. Der Kreisbogen kann ja in zwei Richtungen "ausgebeult" sein. Da kannst das ja alles quasi entlange der Geraden durch die beiden Punkte spiegeln.

Eindeutig wird es IMHO nur, wenn du noch ein Tangente für den Kreisbogen hast, weil dann die "Richtung" des Kreisbogens festgelegt ist. Ist mir aber gerade zu kompliziert, darüber nachzudenken ;-)

Gruß, noisefloor
ttschhj
User
Beiträge: 6
Registriert: Montag 22. Januar 2018, 12:42

__deets__ hat geschrieben:Haben wir schon Verstanden. Hast du meine Antwort verstanden?

Nein, leider nicht so wirklich :K
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

@ttschhj: wie würdest Du den Mittelpunkt mit Papier und Zirkel konstruieren, wenn Du zwei Punkte und einen Radius gegeben hast?
ttschhj
User
Beiträge: 6
Registriert: Montag 22. Januar 2018, 12:42

Hallo zusammen,

habe die Lösung berechnen können. Der Ansatz für M = AB/2 + lambda*v... Falls jemand an der Rechnung interessiert ist kann er sich gerne melden.
Nun kann man die Scheibe über drei Längen, Winkel und abgerundeten Radius definieren.
Meine Syntax sieht aktuell so aus:

Laenge_1 = 872
Laenge_2 = 588
Laenge_3 = 307
Radius = 1761
alpha = 0.280998
beta = 0.3089233

# Create Datum Plane
selection = Selection.Create(Axis1)
result = DatumPlaneCreator.Create(selection, False, Info1)

# Change Section View
sectionPlane = Plane.PlaneZX
result = ViewHelper.SetSketchPlane(sectionPlane, Info2)

# Linie skizzieren Linie 1
start = Point2D.Create(MM(0), MM(0))
end = Point2D.Create(MM(0), MM(Laenge_1))
result = SketchLine.Create(start, end)

# Linie skizzieren Linie 2
start = Point2D.Create(MM(0), MM(Laenge_1))
end = Point2D.Create(MM(0+cos(alpha)*Laenge_2), MM(Laenge_1+sin(alpha)*Laenge_2))
result = SketchLine.Create(start, end)

# Linie skizzieren Linie 3
start = Point2D.Create(MM(0), MM(0))
end = Point2D.Create(MM(0+cos(beta)*Laenge_3), MM(0+sin(beta)*Laenge_3))
result = SketchLine.Create(start, end)

x_1 = (0+sin(beta)*Laenge_3) #A_x
y_1 = (0+cos(beta)*Laenge_3) #A_y
x_2 = (Laenge_1+sin(alpha)*Laenge_2) #B_x
y_2 = (0+cos(alpha)*Laenge_2) #B_y
lam = math.sqrt((Radius**2-0.25*((x_2-x_1)**2+(y_2-y_1)**2))/((-y_2+y_1)**2+(x_2-x_1)**2))

# Drei-Punkt-Bogen skizzieren Linie 4 ############################# Arc
origin = Point2D.Create(MM(((y_1+y_2)/2)-(lam*(x_2-x_1))), MM(((x_1+x_2)/2)-(lam*(-y_2+y_1))))
start = Point2D.Create(MM(0+cos(beta)*Laenge_3), MM(0+sin(beta)*Laenge_3))
end = Point2D.Create(MM(0+cos(alpha)*Laenge_2), MM(Laenge_1+sin(alpha)*Laenge_2))
result = SketchArc.Create(origin, start, end)


Gruß Jo
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

@ttschhj: Du rechnest an mehreren Stellen die selben Ausdrücke aus. Das Programm wird viel klarer, wenn Du das nur einmal machst und das Ergebnis in aussagekräftige Namen schreibst. Wenn x_1 eigentlich A_x heißt, warum nennst Du es nicht gleich so und sparst Dir den Kommentar?
ttschhj
User
Beiträge: 6
Registriert: Montag 22. Januar 2018, 12:42

Ja das stimmt, das stammt alles noch aus der Entwurfsphase :wink:
Die verschiedenen Bezeichnungen entstanden deshalb, da ich es vorher auf dem Papier gerechnet hatte
Ich bin schon dabei die Syntax etwas "aufzuräumen"..

Danke für eure Antworten!
Gruß Jo
Antworten