Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Winkel gesucht

Winkel gesucht

timp
timp20.09.1022:53
Hallo zusammen,
keine Ahnung, ob dies der richtige Ort für eine solche Frage ist...
Ich versuche mich gerade an einem kleinen Spiel mit GameSalad
Leider sind meine Mathe-Kenntnisse völlig eingerostet, vielleicht könnt ihr mir helfen?

Ich möchte einen Spielstein "anstupsen" (klicken, ziehen und loslassen). Ich bekomme 4 Zahlen ausgegeben (x- und y-Werte beim Klicken und beim Loslassen, soweit so gut) und möchte daraus einen Winkel errechnen (0°-360°), um dem Spielstein eine bestimmte Richtung geben zu können.

Zur Verdeutlichung habe ich eine Skizze angehängt. Vielleicht ist es auch der falsche Ansatz... bin gespannt...
„Never argue with an idiot. He'll bring you down to his level and then beats you with experience.“
0

Kommentare

Murray20.09.1023:00
Der Winkel ist einfach über alpha=arctan((By-Ay)/(Bx-Ax)) gegeben.

Lg Murray
0
timp
timp20.09.1023:20
Ich liebe dieses Forum.

Wow, das ging schnell
Vielen Dank!
„Never argue with an idiot. He'll bring you down to his level and then beats you with experience.“
0
sram
sram21.09.1000:25
„Auf Weisung eines Administrators musste diese Signatur entfernt werden“
0
Navier-Stokes
Navier-Stokes21.09.1011:47
Ein wenig mehr Mühe musst Du Dir schon geben!
1) Wenn Bx-Ax == 0, dann knallts
2) Der arctan liefert nur Werte zwischen -90° und 90°. Z.B. Wenn Du deinen Spielstein nach unten links anstupst, kannst Du es nicht von oben rechts unterscheiden.
„Computer Science is no more about computers than astronomy is about telescopes. (Edsger W. Dijkstra)“
0
Navier-Stokes
Navier-Stokes21.09.1012:05
Wenn es Dir darum geht, eine Wurfparabel zu berechnen, dann mach es doch gleich Vektoriell, also für jede Koordinate getrennt und die Bewegungen wieder als Vektor zusammensetzen. Dann sparst Du Dir den Winkelscheiß.
Also Du ziehst von A nach B in der Zeit dt. Dann ist die Anfangsgeschwindigkeit V = (Vx, Vy)) = (Bx-Ax,By-Ay)/dt. Beschleunigungen vertikal und horizontal sei etwa AC = (ACx, ACy) = (0, -9.81). Dann ist der Ort des fliegenden Klotzes nach einer abgelaufenen Zeit t:
S = (Sx, Sy) mit Si = Bi + Vi*t + 1/2 * ACi * t * t ; Setze für i einmal x und einmal y ein. Fertig!

Gruß

Navier
„Computer Science is no more about computers than astronomy is about telescopes. (Edsger W. Dijkstra)“
0
Murray21.09.1012:06
Ja. Mir ist schon klar, dass obige Formel nicht immer funktioniert. Aber er soll ja auch selber noch ein wenig drüber nachdenken Außerdem bin ich implizit davon ausgegangen, dass arctan(inf)=pi/2 liefert (was z.B. Matlab tatsächlich auch tut).

Und dass man Fallunterscheidungen machen muss ist ja auch klar. Bei Wiki findet sich auch recht schnell eine vollständige Formel (auf die man eigentlich auch sofort selber kommt)

EDIT: Jau. Vektoriell wie Navier-Stokes sagt ist natürlich immer schöner
0
timp
timp21.09.1013:21
Navier-Stokes
Ein wenig mehr Mühe musst Du Dir schon geben!
1) Wenn Bx-Ax == 0, dann knallts
2) Der arctan liefert nur Werte zwischen -90° und 90°. Z.B. Wenn Du deinen Spielstein nach unten links anstupst, kannst Du es nicht von oben rechts unterscheiden.

Hehe, habe ich gestern Nacht dann auch gemerkt!
Murray
Ja. Mir ist schon klar, dass obige Formel nicht immer funktioniert. Aber er soll ja auch selber noch ein wenig drüber nachdenken

Jep, selber Denken macht Spaß, ich weiß
Navier-Stokes
Also Du ziehst von A nach B in der Zeit dt. Dann ist die Anfangsgeschwindigkeit V = (Vx, Vy)) = (Bx-Ax,By-Ay)/dt. Beschleunigungen vertikal und horizontal sei etwa AC = (ACx, ACy) = (0, -9.81). Dann ist der Ort des fliegenden Klotzes nach einer abgelaufenen Zeit t:
S = (Sx, Sy) mit Si = Bi + Vi*t + 1/2 * ACi * t * t ; Setze für i einmal x und einmal y ein. Fertig!

Klingt toll! Ich verstehe kein Wort!
Also ich befürchte, das wird nix mehr mit mir und Mathe... lieber mehr zeichnen...

Also danke Ihr zwei. Wirklich schöne Anregungen. Ich sehe schon, das scheint komplexer zu sein als ich dachte.
Ich bleibe aber dran und versuche es weiter in meiner Freizeit. Mal sehen ob ich was zustande bekomme...
„Never argue with an idiot. He'll bring you down to his level and then beats you with experience.“
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.