3D Objekt dreht sich auf einmal falsch

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

etlam

Betreff: 3D Objekt dreht sich auf einmal falsch

BeitragDo, Jan 05, 2006 15:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Habe mir das driver demo angeschaut und das Programm umgeändert, damit ich es verwenden kann, bin aber schon an meine Grenzen gechtoßen. Embarassed Sad
Ich habe eingefügt, dass man das Objekt auch nach unten drehen kann, aber wenn man das Objekt eine Weile nach unten dreht, dreht es sich auf einmal halb auf der anderen Achse, auf jedenfall sieht es so aus... Confused
Hier der Code:
Code: [AUSKLAPPEN]

Graphics3D 640,480,16,2

objektmesh = loadmesh("fly.3ds")

positionEntity objektmesh,0,170,0

light = CreateLight()

target = CreatePivot(objektmesh)

PositionEntity target,0,50,-200
camera = CreateCamera()
CameraRange camera,1,10000

speed# = 0

while not keyhit(1)
   
   
   If Keydown(203) Then TurnEntity objektmesh,0,3,0
   If Keydown(205) Then TurnEntity objektmesh,0,-3,0
   If Keydown(30) Then TurnEntity objektmesh,3,0,0
   If Keydown(44) Then TurnEntity objektmesh,-3,0,0

   If Keydown(200) Then

      speed# = speed# + 2
      If speed#>1000 then speed#=1000

   Else If Keydown(208) Then

      speed# = speed#-2
      If speed#<0 Then speed#=0

   Else
      speed# = speed#*0.9
   EndIf
   MoveEntity objektmesh,0,0,speed#

   If speed#>=0 Then

      dx#=EntityX( target,True ) - EntityX( camera )
      dy#=EntityY( target,True ) - EntityY( camera )
      dz#=EntityZ( target,True ) - EntityZ( camera )

      TranslateEntity camera,dx*0.1,dy*0.1,dz*0.1

   EndIf

   PointEntity camera,objektmesh

   UpdateWorld
   RenderWorld
   Text 0,0,speed#
   Flip
Wend

End

Wo liegt der Fehler ?
Helft mir Bitte
Vielen Dank im voraus Laughing

Wieso antwortet keiner? Crying or Very sad Rolling Eyes

rema

BeitragFr, Jan 20, 2006 18:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem ist das mit den Achsen. Du hast die x- und z-Achse, die frei bewegbar sind. Die y-Achse hingegen hat eine Eigenheit die im ersten Augenblick unlogisch aussieht, aber doch seine Berechtigung hat. Den man geht davon aus, dass jedes Objekt aus Sicht einer Person zu bewegen ist, und nicht absolut im Raum.

Darum musst du für die y-Achse per If_Then eine Begrenzung setzten.

Am besten teste es mal so um selber darauf zu kommen. Lasse dir per "Text" die x,y und z Achse vom Objekt ausgeben.

Ich suche schon mal ein geeignetes Tutorial, da ich selber schon lange nichts mehr mit B3D gemacht habe, aber das selber Problem bei einem Editor hatte den ich gebaut habe.

etlam

Betreff: Danke!

BeitragFr, Jan 20, 2006 21:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die Antwort...
Also bei mir dreht es bei ~77-79
Ich hab versucht das ganze damit zu reparieren, aber jetzt kann man das mesh gar nicht mehr nach unten drehen... Sad
Nachmals Danke für die Antwort Very Happy

Abrexxes

BeitragSa, Jan 21, 2006 3:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Denk mal drüber nach das es nicht nur Ganzzahlen sondern auch kommazahlen gibt.

Nur ein Tip. Wink

rema

BeitragSa, Jan 21, 2006 15:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Stimmt zwar (selber nicht bemerkt) aber mit dem hats nichts zu tun.

@etlam, drehe mal jede Achse einzeln um 360° und beobachte die Ausgabe der Achsen.
Und stell auch gleich mal deine Variabeln auf float um (alle Variabeln vorher mit # deklarieren)

etlam

BeitragSa, Jan 21, 2006 15:48
Antworten mit Zitat
Benutzer-Profile anzeigen
danke für die antworten, ich werds gleich ausprobieren

etlam

BeitragSa, Jan 21, 2006 16:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich nach unten um 360° drehe, wird die Pitchachse:
1. 1.00179e-005
2. 2.00358e-005
3. 3.00537e-005
4. 4.00716e-005
5. 5.00896e-005

Wenn ich nach oben um 360° drehe, wird die Pitchachse:
1. -1.00179e-005
2. -2.00358e-005
3. -3.00537e-005
4. -4.00716e-005
5. -5.00896e-005

Die 3-6 Nachkommastele verändert sich immer um 179.
Aber wenn ich zuerst 3 * nach unten drehe und dann 3* nach oben passiert das:
1. unten : 1.00179e-005
2. unten : 2.00358e-005
3. unten : 3.00537e-005
4. oben : 2.00358e-005
5. oben : 1.00179e-005
6. oben : -1.62844e-012

Irgendwie werde ich aus dem Zahlensalat nicht schlau... Crying or Very sad

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group