ich bräuchte mal wieder ein bisschen Hilfe. Im Groben geht es wie hier darum, dass ich einen Punkt im Raum habe und von diesem Punkt weitere Punkte auf einer Geraden berechnen möchte.
Nur mit dem Unterschied, dass nun nur 1 Punkt bekannt ist und die Richtung (Anstieg), in welche der nächste Punkt verschoben werden soll.
Hier mal eine kleine Skizze, die verdeutlichen soll, was ich meine:
Man hat den Punkt1 von diesem ist der Anstieg bekannt. Des Weiteren weiß ich, in welchem Abstand der nächste Zwischenpunkt sein soll.
Nun werden in 2 extra Methoden die jeweilige Länge von der Ankathete und der Gegenkathete berechnet. Diese Werte sollen nun auf die X- bzw. die Y-Werte addiert (ggf. subtrahiert) werden und das ganze soll n-mal passieren.
Hier mal eine Art Pseudo-Code
Code: Alles auswählen
def zwischenpunkte():
"""
Hier sollen die Zwischenpunkte berechnet werden
"""
fahrt = 2650 / 500 # 2650 = stelllt den max. Abstand dar, 500 = ist der Abstand zwischen den einzelnen Punkten
print fahrt, "fahrten"# Ergebnis
hoehe = 264 # Länge der Ankathete
laenge = 424 # Länge der Gegenkathete
punkt1 = (2016, 1986) # Koordinaten des 1. Punktes
spur = 500 # Abstand zu zwischenpunkten
liste1 = [] # in diese Liste soll gespeichert werden
while fahrt > 0:
punkt1[0] = punkt1[0] + hoehe # hoehe ist in Skizze senkrechter strich
punkt1[1] = punkt1[1] - laenge # laenge ist in Skizze waagerechter Strich
werte = (punkt1[0], punkt1[1])
liste1.extend(werte)
fahrt = fahrt -1
return liste1
In jeden Durchgang auf den aktuellen x-Wert um die hoehe. Ebenso der y-Wert wird in jedem Durchlauf um laenge reduziert.
Abschließend sollen die jeweiligen Koordinatenpaare in einem Tupel zusammengefasst werden und in einer Liste gespeichert.
Hat vielleicht jemand eine Idee, wie man das eleganter machen kann bzw. überhaupt realisieren?
Ziel ist es dann das gleiche mit einer 2. Liste zu machen und diese dann beide zusammen zu führen. Das funktioniert schon, dank der tatkräftigen Unterstützung in dem oben angegebenen Thread.
Mir fehlt jetzt nur noch die Erstellung der Liste.
Vielen Dank schon mal für eure Hilfe
Daniela