Wurfparabel in verschiedene Richtungen
Übersicht

![]() |
C64-FloBetreff: Wurfparabel in verschiedene Richtungen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oh mei!
Sind die vielen Mathe-Stunden in der Schule wirklich für die Katz gewesen? (oder ists einfach solange her..? ![]() Ich versuche wurfparabeln für zufällig herabfallende projektile zu benutzen - dh, winkel, v (und fluggeschwindigkeit) werden später zufällig ermittelt. nur.... scheine ich schon an den Anfängen zu scheitern - mit dem code Code: [AUSKLAPPEN] Graphics 640,480,32,2
SetBuffer BackBuffer() Global winkel=80 Global v=50 Global t#=0 Global g#=9.81 While Not KeyHit(1) t=0 Repeat t = t + 0.1 x = 200+(v*(Cos(winkel))*t) y = 200+((v*(Sin(winkel))*t)-(0.5*g*(t*t))) Color 255,255,255 WritePixel x, y,$FFFFFF Flip until keyhit(1) or x<0 or y<0 exit Cls Wend End gelingen mir nur "würfe" von links nach rechts, die auch noch auf dem Kopf stehen...! ![]() Ich steh grad aufm Schlauch - wie kann ich die Parabeln "umdrehen"? bzw allgemein in verschiedenste Richtungen (links/rechts) schwirren lassen? ![]() |
||
"Die Situation ist aussichtslos - aber nicht kritisch!"
(S.Effenberg.) |
![]() |
PddBetreff: Re: Wurfparabel in verschiedene Richtungen |
![]() Antworten mit Zitat ![]() |
---|---|---|
C64-Flo hat Folgendes geschrieben: "umdrehen"
Wenn ich das richtig verstanden habe, (-1*(Wert)), bzw. GraphicsWidth-Wert, jenachdem ![]() ![]() |
||
Lieber Apfel als Birne. |
![]() |
C64-Flo |
![]() Antworten mit Zitat ![]() |
---|---|---|
So habe ich negative werte (zB für "y") und sehe dann garnichts mehr, weil der punkt ausserhalb (oberhalb) des sichtbaren bildes liegt...
![]() Nein, ich meinte dass die erdanziehungskraft zur zeit "nach oben" wirkt, und die parabel auch immer nur von links nach rechts fliegt - das muss doch auch anders gehen? |
||
"Die Situation ist aussichtslos - aber nicht kritisch!"
(S.Effenberg.) |
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] x = 200-(v*(Cos(winkel))*t)
?? |
||
![]() |
C64-Flo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ähm, ja danke, hast mich soeben vom "schlauch" runtergeschubst
![]() |
||
"Die Situation ist aussichtslos - aber nicht kritisch!"
(S.Effenberg.) |
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
gut hab von parabel eigentlich keine ahnung aber einfach mal bisl neben der linie gedacht.. und logisch überlegt.. | ||
![]() |
Rone |
![]() Antworten mit Zitat ![]() |
---|---|---|
moin,
wenn du das für Projektile nutzen willst würde ich das nicht mit Sinus machen, sondern eher mit vektoren(vx,vy) ....is eventuell flexibler und dann kann man auch easy machen das die dinger von anderen sachen abprallen etc... check den mal: Code: [AUSKLAPPEN] Graphics 640,480,32,2
SetBuffer BackBuffer() Global Gravi= 981 ;----------------------------------------------------------------------- Type Ball Field x#, y#, vx# , vy# , radius End Type Function Create.Ball(xpos, ypos, r) b.Ball = New Ball b\x = xpos b\Y = ypos b\radius = r Return b End Function Function BerechneAll(time) For b.Ball = Each Ball b\vy = b\vy + (Gravi * 0.016) b\y = b\y + ( b\vy * 0.016 ) b\x = b\x + ( b\vx * 0.016 ) If b\x > 650 Or b\x<-10 Or b\y<-10 Or b\y>500 Then Delete b.Ball Next End Function Function DrawAll() For b.Ball = Each Ball Local r# = b\radius / 2 Oval b\x-r,b\y-r,b\radius,b\radius Next End Function ;----------------------------------------------------------------------- Local bla$ = "Bitte Maus-Taste drücken!" Local width = StringWidth(bla) Repeat Cls If MouseDown(1) Then b.Ball = Create(MouseX() , MouseY() , Rand(3,5)) b\vx = Rand(0,400)*2-400 b\vY=Rand(0,400)*-1+100 EndIf BerechneAll(time) DrawAll() Text 320-width/2,10,bla Flip Until KeyHit(1) End |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group