Wurfparabel in verschiedene Richtungen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

C64-Flo

Betreff: Wurfparabel in verschiedene Richtungen

BeitragDi, Dez 12, 2006 19:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh mei!
Sind die vielen Mathe-Stunden in der Schule wirklich für die Katz gewesen?

(oder ists einfach solange her..? Rolling Eyes )

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...! Confused

Ich steh grad aufm Schlauch - wie kann ich die Parabeln "umdrehen"?
bzw allgemein in verschiedenste Richtungen (links/rechts) schwirren lassen?
Question
"Die Situation ist aussichtslos - aber nicht kritisch!"
(S.Effenberg.)

Pdd

Betreff: Re: Wurfparabel in verschiedene Richtungen

BeitragDi, Dez 12, 2006 19:30
Antworten mit Zitat
Benutzer-Profile anzeigen
C64-Flo hat Folgendes geschrieben:
"umdrehen"

Wenn ich das richtig verstanden habe, (-1*(Wert)), bzw. GraphicsWidth-Wert, jenachdem Razz Weis aber net genau ob du das gemeint hast Wink
Lieber Apfel als Birne.

C64-Flo

BeitragDi, Dez 12, 2006 19:48
Antworten mit Zitat
Benutzer-Profile anzeigen
So habe ich negative werte (zB für "y") und sehe dann garnichts mehr, weil der punkt ausserhalb (oberhalb) des sichtbaren bildes liegt...

Confused


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

BeitragDi, Dez 12, 2006 19:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
x = 200-(v*(Cos(winkel))*t)


??

C64-Flo

BeitragDi, Dez 12, 2006 19:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Ähm, ja danke, hast mich soeben vom "schlauch" runtergeschubst

Embarassed
"Die Situation ist aussichtslos - aber nicht kritisch!"
(S.Effenberg.)
 

da_poller

BeitragDi, Dez 12, 2006 20:04
Antworten mit Zitat
Benutzer-Profile anzeigen
gut hab von parabel eigentlich keine ahnung aber einfach mal bisl neben der linie gedacht.. und logisch überlegt..

Rone

BeitragDi, Dez 12, 2006 20:44
Antworten mit Zitat
Benutzer-Profile anzeigen
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

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group