Rotation hin, Rotation her.....Problem

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

.erazer

Betreff: Rotation hin, Rotation her.....Problem

BeitragMi, Jun 18, 2008 15:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich stehe vor folgendem Problem.

Ich habe eine parent/child Beziehung und dann ist klar, dass sich das child bei rotation um das parent dreht, als mittelpunkt sozusagen.


aber was ist, wenn ich ein child um die eigene achse drehen will, und sich das parent woanders befindet?


was sind eigentlich globale rotationen?

eigentlich ist doch alles relativ, oder?

ich komm da nicht ganz hinterher.
 

Silvester

BeitragMi, Jun 18, 2008 17:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich mit turnentity das child bewege, dreht sich das Childobjekt schon um sich selbst,nicht um das Parent:

Code: [AUSKLAPPEN]

Graphics3D 640, 480

SetBuffer BackBuffer()

sphere = CreateSphere(5) ;Diese Kugel ist das Parentobjekt des Würfels
cube = CreateCube(sphere) ;Diese Würfel ist Child von sphere
MoveEntity cube, 0, 3, 0  ;Würfel verchieben, um die Drehung zu sehen

ScaleEntity sphere, 0.1, 0.1, 0.1
ScaleEntity cube, 1.5, 1.5, 1.5

cam = CreateCamera()
MoveEntity cam, 0,0,-3
PointEntity cam, cube

WireFrame 1

While Not KeyHit(1)
   
   TurnEntity cube, 1, 1, 1
   
   UpdateWorld : RenderWorld : Flip

Wend


Wo ist also das Problem? (oder ahbe ich deine Frage nicht ganz verstanden)[/code]
Mach das Fenster zu, dem Pinguin wird kalt!!! Smile
 

.erazer

BeitragDo, Jun 19, 2008 12:36
Antworten mit Zitat
Benutzer-Profile anzeigen
und um das child um das parent zu drehen, brauch ich den optionalen global parameter, richtig?
 

Silvester

BeitragDo, Jun 19, 2008 16:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Um das child um das Parent zu drehen, musst du einfach das parent-objekt drehen, also so:

Code: [AUSKLAPPEN]

Graphics3D 640, 480

SetBuffer BackBuffer()

sphere = CreateSphere(5) ;Diese Kugel ist das Parentobjekt des Würfels
cube = CreateCube(sphere) ;Diese Würfel ist Child von sphere
MoveEntity cube, 0, 3, 0  ;Würfel verchieben, um die Drehung zu sehen

ScaleEntity sphere, 0.1, 0.1, 0.1
ScaleEntity cube, 1.5, 1.5, 1.5

cam = CreateCamera()
MoveEntity cam, 0,0,-3
PointEntity cam, cube

WireFrame 1

While Not KeyHit(1)
   
   TurnEntity sphere, 1, 1, 1
   
   UpdateWorld : RenderWorld : Flip

Wend


Silvester[/code]
Mach das Fenster zu, dem Pinguin wird kalt!!! Smile
 

.erazer

BeitragDo, Jun 19, 2008 18:37
Antworten mit Zitat
Benutzer-Profile anzeigen
wozu ist dann der parameter global da?
 

Silvester

BeitragSa, Jun 21, 2008 11:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn Global auf 0 ist (die standardeinstellung), dann wird das lokale Koordinatensystem des parent-meshs (oder, wenn der mesh kein parent hat, sein eigenes lokales Koordinatensystem) verwendet. Das heißt: Wenn der parent-mesh gedreht wird, drehen sich auch die Achsen mit (die y-achse schaut dann nicht mehr nach oben, sondern z.B. nach vorne).
Wenn Global auf 1 gesetzt ist, wird das globale Koordinatensystem verwendent, d.h. wenn der mesh gedreht wird, zeigt die x-achse immer noch nach links und rechts, die y-achse nach oben und die z-achse nach hinten.

Ich hoffe, du hast es verstanden (ich kann nicht so gut erklären)

Silvester
Mach das Fenster zu, dem Pinguin wird kalt!!! Smile

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group