Studium, Ausbildung und Beruf
 StudiumHome   FAQFAQ   RegelnRegeln   SuchenSuchen    RegistrierenRegistrieren   LoginLogin

Koordinatentransformation - Kugelstoß im Programm verstehen
Neues Thema eröffnen   Neue Antwort erstellen
Foren-Übersicht -> Informatik-Forum -> Koordinatentransformation - Kugelstoß im Programm verstehen
 
Autor Nachricht
lakerz
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 26.05.2007
Beiträge: 5

BeitragVerfasst am: 26 Mai 2007 - 19:15:54    Titel: Koordinatentransformation - Kugelstoß im Programm verstehen

Hallo erst mal an alle, ist mein erster Beitrag! Smile

Ich habe ein Programm geschrieben in welchem ich dezentrale elastische Stöße simuliere. Bei der Suche nach einer Lösung bin ich auf die Koordinatentransformation gestoßen um den Stoß zu berechnen, funktioniert soweit auch ganz gut, nun fehlt mir aber das mathematische Wissen um den Quellcode vollständig zu verstehen, kann mir dabei jemand helfen? Weiss leider nicht ob nun das Mahte, Physik oder Informatik Forum am Besten geeignet sind, habe mich mal für letzteres entschieden... hier der Quelltext:

Code:
# Abstand ausrechnen
delta_p = [self.p[0] - partner.p[0], self.p[1] - partner.p[1]]
laenge = math.hypot(delta_p[0], delta_p[1])
                               
# Matrix erstellen mit den neuen Koordinatenachsen
# parallel/senkrecht zum Stoss
matrix1 = [delta_p[0] / laenge, - delta_p[1] / laenge]
matrix2 = [delta_p[1] / laenge, delta_p[0] / laenge]

# Koordinatentransformation
vp1 = self.v[0] * matrix1[0] + self.v[1] * - matrix1[1]
vs1 = self.v[0] * - matrix2[0] + self.v[1] * matrix2[1]
vp2 = partner.v[0] * matrix1[0] + partner.v[1] * - matrix1[1]
vs2 = partner.v[0] * - matrix2[0] + partner.v[1] * matrix2[1]

# Stoss berechnen
s_m = self.m + partner.m
up1 = (self.m - partner.m) / s_m * vp1 + \
    2 * partner.m / s_m * vp2
up2 = (partner.m - self.m) / s_m * vp2 + \
   2 * self.m / s_m * vp1

# Ruecktransformation
self.v[0] = up1 * matrix1[0] + vs1 * matrix1[1]
self.v[1] = up1 * matrix2[0] + vs1 * matrix2[1]
partner.v[0] = up2 * matrix1[0] + vs2 * matrix1[1]
partner.v[1] = up2 * matrix2[0] + vs2 * matrix2[1]

Der Anfang ist für mich klar. Der Verbindungsvektor (delta_p) wird ausgerechnet, mit dessen Hilfe dann zwei weitere Vektoren (matrix1, matrix2), berechnet und auf die Länge 1 normiert, welche die neuen Koordinatenachsen darstellen sollen.

Was mich beschäftigt sind die Zeilen unter "# Koordinatentransformation " sowie "# Ruecktransformation", wobei das eine ja das Andere erklären würde nehme ich an. Kann mir jemand erklären was da nun wirklich gemacht wird? Vielleicht eine sehr blöde frage, ich kanns ja nachrechnen... aber so wirklich schlau werde ich daraus nicht, jemand anderem könnte ich es nicht erklären warum das so ist und nicht anders...

"# Stoss berechnen" ist wiederum kein Problem, einfach nur die Stoßphysik.. also handelt sich nur um die oberen beiden Punkte.

Ist übrigens in Python geschrieben. Würde mich freuen wenn mir jemand helfen könnte, vielen Dank schonmal!

Greets,
lakerz
lakerz
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 26.05.2007
Beiträge: 5

BeitragVerfasst am: 02 Jun 2007 - 11:03:57    Titel:

Hat sich geklärt. Smile
Beiträge der letzten Zeit anzeigen:   
Foren-Übersicht -> Informatik-Forum -> Koordinatentransformation - Kugelstoß im Programm verstehen
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Chat :: Nachrichten:: Lexikon :: Bücher :: Impressum