3D Objekt dreht sich auf einmal falsch
Übersicht

![]() |
etlamBetreff: 3D Objekt dreht sich auf einmal falsch |
![]() Antworten mit Zitat ![]() |
---|---|---|
Habe mir das driver demo angeschaut und das Programm umgeändert, damit ich es verwenden kann, bin aber schon an meine Grenzen gechtoßen. ![]() ![]() 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... ![]() 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 ![]() Wieso antwortet keiner? ![]() ![]() |
||
![]() |
rema |
![]() Antworten mit Zitat ![]() |
---|---|---|
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. |
||
![]() |
etlamBetreff: Danke! |
![]() Antworten mit Zitat ![]() |
---|---|---|
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... ![]() Nachmals Danke für die Antwort ![]() |
||
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Denk mal drüber nach das es nicht nur Ganzzahlen sondern auch kommazahlen gibt.
Nur ein Tip. ![]() |
||
![]() |
rema |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
danke für die antworten, ich werds gleich ausprobieren | ||
![]() |
etlam |
![]() Antworten mit Zitat ![]() |
---|---|---|
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... ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group