Panzerfahrt

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

StepTiger

Betreff: Panzerfahrt

BeitragDo, Feb 09, 2006 21:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi@all!

Also hier mein plan:
Ich will, dass ein Panzer auf einem unebenen Terrain fährt und er sich aber auch so bewegt! Also dass er auch seine Achsen alle so macht! Wie mach ich das?

Triton

BeitragDo, Feb 09, 2006 22:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Gib ihm ein Gewicht und gib der Welt in der er fährt die Schwerkraft.
Dazu noch gliedrige Ketten die auf den Untergrund reagieren und schon ist es nicht mehr weit.
Coding: silizium-net.de | Portfolio: Triton.ch.vu

StepTiger

BeitragDo, Feb 09, 2006 22:43
Antworten mit Zitat
Benutzer-Profile anzeigen
HARTE ARBEIT! Ich glaube ich habe eine idee!

Ich hab gerade so den einfall das vielleicht über den atanfull befehl zu machen!

TJA!

ATANFULL! Meine rettung! hmmm... in der b3d hilfe geschaut.... nichts gefunden! programmier ich mir doch mal ein atanfull programm!

NICHTS LEICHTER ALS DAS! dachte ich bevor ich 2 stunden daran gesessen habe! Klein aber oho!

Es gibt den winkel zweier punkte an, obwohl es nur den x und y abstand kennt.

Wie macht es das???
Keine ahnung ^^ nene spaß! Aber zu faul zum erklären, da ich mir sicher bin, in b3d ist irgendwo doch eine funktion eingebaut mit der das ginge! also bin ich mal ganz ruhig ^^



aber wer es doch haben will:
Code: [AUSKLAPPEN]
Function atanfull#(xdist#,ydist#)
   winkel#=0

   z#=xdist#^2+ydist#^2
   z#=z#^.5

   wink#=xdist#/z#
   winkel#=ASin(wink#)

   If xdist#<>0
   Else
      If ydist#>0 Then winkel#=360
      If ydist#<0 Then winkel#=180
   EndIf

   If ydist#<>0
      If ydist#<0 Then winkel#=winkel#+90
      If xdist#<0 And ydist#<0 Then winkel#=winkel#-180
   Else
      If xdist#>0 Then winkel#=90
      If xdist#<0 Then winkel#=270
   EndIf

   If xdist#=0 And ydist#=0 Then winkel#=666

   If winkel#<=0 Then winkel#=winkel#+360
   Return winkel#
End Function      

hectic

Sieger des IS Talentwettbewerb 2006

BeitragFr, Feb 10, 2006 0:33
Antworten mit Zitat
Benutzer-Profile anzeigen
ql:ATan2 macht doch nichts anderes, denke ich.

StepTiger

BeitragFr, Feb 10, 2006 15:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich war mir doch so sicher, dass es sowas schon gibt ^^


aber in meinem war noch ein fehlerchen! das ist besser:

Code: [AUSKLAPPEN]

Function atanfull#(xdist#,ydist#)
   winkel#=0

   If Not xdist#<>0
      If ydist#>0 Then winkel#=360:da=1
      If ydist#<0 Then winkel#=180:da=1
   EndIf

   If Not ydist#<>0
      If xdist#>0 Then winkel#=90:da=1
      If xdist#<0 Then winkel#=270:da=1
   EndIf

   If ydist#<0 Then da=da+1
   If xdist#<0 Then da=da+1
   If xdist#<0 And ydist#>0 Then da=da+1
   If xdist#>0 And ydist#>0 Then da=0

   z#=xdist#^2+ydist#^2
   z#=z#^.5

   If da=0
      wink#=xdist#/z#
      winkel#=winkel#+ASin(wink#)
   Else
      wink#=ydist#/z#
      winkel#=winkel#+ACos(wink#)
   EndIf

   If xdist#=0 And ydist#=0 Then winkel#=666

   If winkel#<=0 Then winkel#=winkel#+360
   
   If da=2 Then winkel#=-Abs(winkel#)

   If Not xdist#<>0
      If ydist#>0 Then winkel#=360:da=1
      If ydist#<0 Then winkel#=180:da=1
   EndIf

   If Not ydist#<>0
      If xdist#>0 Then winkel#=90:da=1
      If xdist#<0 Then winkel#=270:da=1
   EndIf

   Return winkel#
End Function      


Also nützlich für die Leute, die mal wissen wollen was innerhalb der atan2 funktion passiert![/code]

Markus2

BeitragFr, Feb 10, 2006 18:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde erstmal vier Auflagepunkte testen mit LinePick.
Von denen die Aufliegen das Kreuzprodukt ausrechnen bzw.
den mittelpunkt desser .
Dann haste also zwei Vectoren , den Schwerpunkt von deinem Panzer
bzw. die Mitte vom 3D Objekt und diesen Mittelpunkt von den
Auflagepunkten was dir sagt wo der hin kippen möchte .
Den Kippvector mußte wohl spiegeln das der stimmt .

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group