Flugbahn Berechnung

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Flugbahn Berechnung

Beitrag von Green Snake »

hallo

habe eine frage aus neugier
ihr kennt doch sicher das game cannon oder Tankwars oder Ballerburg 2d
ich habe eine frage zu diesen spielen

zb habe ich die variable schusskraft und die variable winkel
wie kann ich berechnen, das wenn zb schusskraft = 50 ist und winkel = 80° ist, dass dan der schuss an die entsprechende position fliegt?

und dan sollte zb der schuss auch noch in dem bogen fliegen.

(diejenigen die cannon kennen, wissen bestimmt was ich meine.)

gibt es da eine mathe formel oder so etwas?
-.-"
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

afaik keine fertige, mit ein bischen kopfarbeit kriegen wir das aber bestimmt hin! :allright:
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

bluejoke hat geschrieben:kopfarbeit
kopfarbeit?...kopfarbeit?...kopfarbeit?...
hmm irgendwo habe ich das schonmal gehört, was ist das?

:D :D :mrgreen: :mrgreen:


bluejoke hat geschrieben: ....kriegen wir das aber bestimmt hin

falls du wir im sinn meinst, dass du mir hilfst, das zu lösen, binn ich dir sehr dankbar
-.-"
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag von Ynnus »

Das ist bei uns Physik 11. Klasse gewesen -> Waagerechter Wurf. Da musst du eben umdenken und die Pixel in eine Art Längenmaß unwandeln (etwa 10 Pixel = 1 meter) und die Kraft von 50 gleich 50 * 100 N sehen, oder so... Den 100erter Multiplikator müsstest du dann eben so anpassen, dass eine vernünftige Flugbahn herauskommt. Zum Thema waagerechter Wurf solltest du mal google anschmeißen. ;)
EDIT: Sehe gerade, ist ja nicht ganz waagerecht wenn er mit 80° abgeschossen wird. Der Waagerechte Wurf ist aber vergleichbar und kann dazugezogen werden. Vielleicht gibts auch sowas in der Art wie schräger Wurf oder so...
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

11.klasse SUPER

Beitrag von Green Snake »

Hallo

11.klasse.......
viel zu hoch für mich
bin jetzt in der 7
(dh. 1 sekundarklsse)

wir hatten noch nichts von flugbahn berechnung usw deshalb frage ich

<edit> also mit den variablen meine ich, das man sie erhöhen bzw verringern kann

also winkel von 0 bis 90°
und schusskraft von 10 bis 100%


das warenn jetzt beispiele, die man noch ändern kann.

ich weis ja nicht einmal, wie man macht, das zb ein kreis einen kreis dreht.

wie gesagt, da ich erst in der sek bin, habe ich von dieser art mathematik keine ahnung </edit>
-.-"
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Ich bin 11. Klasse, und waagrechter Wurf ist mir ein Begriff.
Bei deiner Frage gehts aber um eine Bewegung im 2-Dimensionalen und da bin ich eigentlich ne absolute Niete mit diesem ganzen Vektorscheiß.
Ich hab gemeint, ich helfe dir, aber allein schaff ich das auch nicht.
Als erstes würde ich einen Zusammenhang aus Kraft, Winkel und Flugzeit machen, was aber nur praktikabel ist, wenn sich alles auf einer Ebene befindet.
Bei dieser Aufgabenstellung würde ich eigentlich Schritt für Schritt vorgehen (also in einer Schleife) und nach und nach ein Stück weitergehen und dafür 1 vom Wurfstärkebetrag abziehen.

Vielleicht findest du bei dir auch noch ne Dosversion, da ist QBasic doch dabei, und da wird Gorillas.bas mitgeliefert, kann ich mich dumpf erinnern.
Da ist im Grunde dieses Problem gelöst.

Simon
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

Ich habe mal mein Tafelwerk (oder auch Formelbuch genannt) gezückt:

Schräger Wurf

Ort-Zeit-Gesetz
x = v0 * t * cos(alpha)
y = - g/2 * t² + v0 * t * sin(alpha)

x, y - Position
v0 - Anfangsgeschwindigkeit
t - Zeit
alpha - Winkel
g - Erdbeschleunigung (=9,81 m/s²)

Geschwindigkeit-Zeit-Gesetz
v = WURZEL(v0² + g² * t² - 2 * v0 * g * t * sin(alpha))

Wurfparabel
y = - g/2 * x² / (v0² * cos²(alpha)) + x * tan(alpha)

Wurfweite
sw = (v0² * sin(2 * alpha)) / g

Wurfhöhe
sh = (v0² * sin²(alpha)) / (2 * g)

Steigzeit
th = (v0 * sin(alpha)) / g


sin²(alpha) ist gleichbedeutend mit (sin(alpha))².

Das müsste helfen, oder?
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag von Ynnus »

Laurin hat geschrieben:Ich habe mal mein Tafelwerk (oder auch Formelbuch genannt) gezückt:

Schräger Wurf

Ort-Zeit-Gesetz
x = v0 * t * cos(alpha)
y = - g/2 * t² + v0 * t * sin(alpha)

x, y - Position
v0 - Anfangsgeschwindigkeit
t - Zeit
alpha - Winkel
g - Erdbeschleunigung (=9,81 m/s²)

Geschwindigkeit-Zeit-Gesetz
v = WURZEL(v0² + g² * t² - 2 * v0 * g * t * sin(alpha))

Wurfparabel
y = - g/2 * x² / (v0² * cos²(alpha)) + x * tan(alpha)

Wurfweite
sw = (v0² * sin(2 * alpha)) / g

Wurfhöhe
sh = (v0² * sin²(alpha)) / (2 * g)

Steigzeit
th = (v0 * sin(alpha)) / g


sin²(alpha) ist gleichbedeutend mit (sin(alpha))².

Das müsste helfen, oder?
Ich schätze einem Siebtklässler wird das nicht viel bringen.^^
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

Sunny hat geschrieben: Ich schätze einem Siebtklässler wird das nicht viel bringen.^^
ja, da bin ich deiner meinung, mir sagt das überhaupt nichts.
trotzdem danke für deine hilfe laurin

und auch danke den andern
-.-"
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ok... also mal tacheles ;)

laurin hat die grundformeln genannt, die sind grundsätzlich schon brauchbar,
allerdings braucht das noch erklärungen..
(wobei ich fast glaube, dass er einfach mal seine formelsammlung zitiert hat ;) )

x = v0 * t * cos(alpha)
y = v0 * t * sin(alpha) - g/2 * t²


v0 (V-null = Anfangsgeschwindigkeit) das ist deine 'Schusskraft'

alpha : das ist dein Schusswinkel
(wir müssen wieder mit Radiant arbeiten, die formel geht nach grad)

t ist die Zeit, im programm kann man nen Timer laufen lassen

g ist die Fallbeschleunigung (Erdanziehungskraft) normal 9.81 m/s²

x und y sind die Koordinaten relativ zum Abschusspunkt, in dieser Formel in Metern.

diese Variablen musst du nun sinnvoll umsetzen.

Timer
für den Timer bietet sich an, mit Millisekunden zu arbeiten.
im moment des abschusses setzt du ein

Code: Alles auswählen

StartTimer = ElapsedMilliseconds()
während der Schuss dann fliegt, ermittelst du den momentanen Timer mit

Code: Alles auswählen

Timer = ElapsedMilliseconds() - StartTimer
Koordinaten
da wir bei der Konstante g zwei nachkommastellen brauchen,
bietet sich an, mit Zentimetern zu arbeiten für die Rechnung.
für die Darstellung kannst du dann noch einen Faktor einfügen,
je nachdem, wie letztendlich dein Maßstab ist.
(ohne Faktor wäre das halt 1cm/pixel, dann wäre ein 800er Screen grad mal 8m breit,
das genügt für nen Ameisenkrieg, nicht für Ballerburg,
dafür wäre eine Feldbreite von 800m brauchbar, das wäre Faktor 100,
für moderne Artillerie kann man 8km nehmen, das wäre Faktor 1000.)

[erstmal Post abgeschickt, Fortsetzung folgt ;) ]
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten