Turnentity vs Rotateentity

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

arni

Betreff: Turnentity vs Rotateentity

BeitragSo, Feb 26, 2006 14:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

mache gerade meine ersten Blitz3D Experiemente und habe schon das erste Verständnisproblem.

Ich lade ein Flugzeug, das nach dem Laden mit der "Nase" zu mir zeigt.
Wenn ich ein MoveEntity 0,0,1 aufrufe, fliegt das Ding "rückwärts". Wie kann ich das Flugzeug drehen, sodaß die Spitze in Richtung der positven Z-Achse zeigt ?

In der Doku sieht's so aus, als wäre RotateEntity dafür zuständig.
RotateEntity airplane,0,180,0 rotiert das Objekt zwar, allerdings werden die Achsen mitrotiert. Das heißt das Ding fliegt genau in die entgegengesetzte Richtung, wie eigentlich gewünscht.
 

#Reaper

Newsposter

BeitragSo, Feb 26, 2006 14:11
Antworten mit Zitat
Benutzer-Profile anzeigen
probiers mal mit RotateMesh() Smile
da werden die Gitterpunkte des Objekts neu berechnet.
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7
 

Dreamora

BeitragSo, Feb 26, 2006 14:12
Antworten mit Zitat
Benutzer-Profile anzeigen
RotateMesh sollte das sein, was du möchtest ...
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

arni

BeitragSo, Feb 26, 2006 14:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh danke, das hab' ich in der Doku übersehen !
Ich habe RotateMesh jetzt aufgerufen. Die Bewegung anhand der "z"-Achse paßt jetz auch. allerdings rotiert mein Flugzeug immer noch in die entgegengesetzte Richtung.

D.h. bei +1 gegen den Urzeigersinn.... grmpf

Ich poste mal meinen Code hier:
Code: [AUSKLAPPEN]

Const vk_left=203,vk_right=205,vk_up=200,vk_down=208,vk_a=30,vk_y=44,vk_space=57

Graphics3D 800,600
SetBuffer BackBuffer()
camera=CreateCamera()
CameraViewport camera,0,0,800,600
light=CreateLight()
ufo=LoadMesh("fighter.3ds")
ScaleEntity ufo,.02,.02,.02

RotateMesh ufo,0,180,0
PositionEntity camera,0,5,-5
PositionEntity ufo,0,0,15

While Not KeyHit(1)
 
  If KeyDown(vk_a) Then
    z#=1
  Else If KeyDown(vk_y) Then
    z#=-1
  Else
    z#=0
  End If

  If KeyDown(vk_up) Then
    pitch#=1
  Else If KeyDown(vk_down) Then
    pitch#=-1
  Else
    pitch#=0
  End If

  If KeyDown(vk_left) Then
    roll#=-5
  Else If KeyDown(vk_right) Then
    roll#=5
  Else
    roll#=0
  End If

  TurnEntity ufo,pitch#,yaw#,roll#
  MoveEntity ufo,0,0,z#
   
  UpdateWorld
  RenderWorld
  Text 10,25,"x="+x#+" y="+y#+" z="+z#
  Text 10,40,"pitch="+pitch#+" yaw="+yaw#+" roll="+roll#
  Flip
Wend
End


Also wenn ich Richtung "+z" sehe, dann müßte eine Rotation von +1 um die Z-Achse doch im Urzeigersinn erfolgen, oder? Bei mir ist's genau umgekehrt.
 

Dreamora

BeitragSo, Feb 26, 2006 15:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Drehsinn ist entgegengesetzt dem Uhrzeigersinn definiert in der Geometrie. In Uhrzeigersinnrichtung positiv ist es nur in OpenGL, DirectX ist das negativ wie in der Geometrie auch.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group