Flugparabel ausrichten: Wurfrichtung nach Zielpunkt berechnen



  • einen schoenen guten tag.
    ich habe gerade ein problem mit dem umstellen von ein paar formeln, eigentlich sollte das einfach sein ...
    es geht darum, dass ich einen bot fuer ein spiel (teeworlds -> www.teeworlds.com) baue und der nun lernen soll, granaten auf gegner zu schiessen, was bedeutet, er muss die flugparabel via abschusswinkel justieren, anstatt direkt auf den gegner zu zielen.

    die flugbahn ergibt sich folgendermassen:
    vektor d(dx, dy): abschussrichtung, wobei dx/dy gleichzeitig geschwindigkeit in die entspr. richtung
    a, b: vordef. konstanten
    t: zeit

    x = a*dx + t*dx
    y = a*dy + t*dy + b*t²
    und vorauszusetzen ist ausserdem
    dx²+dy² = 1

    wenn man nun x, y die "zielkoordinaten" setzt, bleiben t, dx, dy als variablen.
    mein letzter ansatz war dann, die ersten gleichungen umzustellen nach dx/dy und in gleichung nr. 3 einzusetzen.
    damit hat man nach vielem rumrechnen: BILD
    (ich bin wohl zu bloed, aber in latex hab ichs hier nicht hinbekommen)

    wenn ich das t jedenfalls einsetze in
    dx = x/(a+t)
    bzw. dy = (y-b*t²)/(a+t)
    kommt quark raus, die abschussrichtung, die dabei rauskommt, zeigt direkt zum ziel, anstatt die flugparabel darauf auszurichten.
    ich sehe den fehler aber aus irgendeinem grund nicht und habe langsam auch keine idee mehr, auf welchem weg das sinnvoll loesbar waere.
    ich habe auch maxima (cas) mal befragt, aber das ist nicht in der lage das ganze aufzuloesen, da haengen die variablen am ende alle von sich selber ab.

    ich waere unendlich dankbar, wenn mir jemand einen tipp geben koennte, wie ich hier sinnvoll rangehe, oder mir meinen fehler aufzeigen, falls der weg schon richtig/sinnvoll war.
    eigentlich glaube ich, dass das ganze so schwer ja nicht sein kann.

    vielen dank im voraus.

    julian


  • Mod

    x = a*dx + t*dx
    y = a*dy + t*dy + b*t²

    Darf ich so frei sein, schon diesen Ansatz anzuzweifeln? Wie kommst du da drauf?



  • SeppJ schrieb:

    x = a*dx + t*dx
    y = a*dy + t*dy + b*t²

    Darf ich so frei sein, schon diesen Ansatz anzuzweifeln? Wie kommst du da drauf?

    die habe ich dem code des spiels (open source) entnommen.

    in x-richtung ist es eine gleichfoermige bewegung, in y-richtung eben eine beschleunigte.
    der abwurfpunkt ist noch abhaengig von der abwurfrichtung, liegt also quasi auf einem kreis um den werfenden (koordinatenursprung), daher a*dx und a*dy vorne.

    da d=v (startgeschwindigkeit), entspricht das ja den formeln
    s=s0 + v0t
    bzw. s=s0 + v0
    t + 1/2at^2
    die kennt man ja aus dem physikunterricht.
    nur dass s0 = a*dx bzw. a*dy, v0=dx oder dy und 1/2a = konstante b.

    mit dieser formel kann ich die flugbahn vorausberechnen, das funktioniert schon.
    also ich nehme die aktuelle position und wurfrichtung und zeichne die parabel ein.
    das entspricht sehr genau der "richtigen" flugbahn, wenn ich dann einmal werfe.

    nur das rechnen in die andere richtung macht mir probleme.


  • Mod

    Julian__ schrieb:

    der abwurfpunkt ist noch abhaengig von der abwurfrichtung, liegt also quasi auf einem kreis um den werfenden (koordinatenursprung), daher a*dx und a*dy vorne.

    Ahh! Jetzt verstehe ich. Ok, dann werde ich mal darüber nachdenken.

    edit: Verdammt, mein Mathematika läuft gerade nicht. Dies schränkt meine Fähigkeit quadratische Gleichungen zu lösen doch sehr ein 🙂 .



  • SeppJ schrieb:

    Julian__ schrieb:

    der abwurfpunkt ist noch abhaengig von der abwurfrichtung, liegt also quasi auf einem kreis um den werfenden (koordinatenursprung), daher a*dx und a*dy vorne.

    Ahh! Jetzt verstehe ich. Ok, dann werde ich mal darüber nachdenken.

    ich bedanke mich im voraus 🙂

    julian


Anmelden zum Antworten