3d-rotation

Status
Nicht offen für weitere Antworten.

waldopax

Mitglied
hallo,

ich hab mir in java ne kleine 3d engine gebastelt, von der theorie her dürfte alles funktionieren, nur komischerweise wenn ich mein objekt um den ursprung drehen möchte verkleinert sich das objekt um die bei der drehung veränderte achse. d.h.

wenn sich das objekt um die y-achse dreht, wird das objekt auf der x- und z-achse kleinerskaliert

ich verwende folgende funktionen zum drehen um die y-achse

a = drehwinkel

x = cos a * x + sin a * z
z = cos a * z - sin a * x

ich kann mir vorstellen dass das problem durch die ungenauigkeit der werte kommt, aber eigentlich dürfte das kaum merklich und erst nach etlichen drehungen passieren, wenn überhaupt.

also wenn jemand eine lösung anbieten kann, möge er /sie sich bitte melden,

danke, patrick
 

Surma

Bekanntes Mitglied
Leider weis ich nicht woran das liegt, aber es gibt geschicktere Variant mit 4x4-Matrizen, wir ham da nen Link in der JLiB.
Undwie ich gerade sehe, geht er zur Zeit net... Mist, der war richtig gut. Naja, auf jeden fall kannst du mit 4x4 Matrizen alles auf einmal machen (Translation, Rotation, und noch was *g*)

Such mal bei google, das findeste was.

//edit:
NAARF! Mir faellt gerade was ein: Du weisst das die Winkelfunktionenfunktionen von Java Radians (Bogenmass) erwarten oder? Also wenn du jetzt sagt um 50° drehen, und uebergibst 50 (z.B an sin), dann rechnet er mit einem winkel von (50 * 180) / pi = 2864,79
= 344,79°
Was dann nachher bei den Additionen zum totalen Chaos fuehrt, was eben auch die Fehler erklaeren wuerde (weis jetzt nicht ob es die "richtigen" symptome dafuer sind)

MfG Surma
 
B

Beni

Gast
waldopax hat gesagt.:
x = cos a * x + sin a * z
z = cos a * z - sin a * x

Ich hoffe mal stark, in der 2. Rechnung wird das originale x verwendet?...

Wenn man die Gleichung auflöst, die Länge des Vektors x/z ist vor und nach der Rotation dieselbe:

(cos^2 a x^2 + 2 cos a sin a x z + sin^2 a z^2) + (cos^2 a z^2 - 2 cos a sin a x z + sin^2 a x^2 )
= x^2( cos^2 a + sin^2 a ) + z^2 (sin^2 a + cos^2 a ) + 2 x z ( cos a sin a - cos a sin a )
= x^2+z^2
 

waldopax

Mitglied
hi,

der kleine aber feine unterschied... hätt man ja selber drauf kommen können*ankopfhau*

natürlich hab ich das x direkt in die resource geschrieben und gleich wieder verwendet, is ja klar dass dann das ergebnis falsch wird...

danköö
pat
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
BraunBerry Rotation mit Radiusänderung Spiele- und Multimedia-Programmierung 0
BraunBerry Rotation von Objekten um ein Raumschiff Spiele- und Multimedia-Programmierung 6
E Rotation um Bildmittelpunkt ohne Affine Transform!!!!! Spiele- und Multimedia-Programmierung 13
RalleYTN LWJGL Rotation Spiele- und Multimedia-Programmierung 1
P Rotation von Sprite klappt nicht Spiele- und Multimedia-Programmierung 4
J Java 3d Rotation Spiele- und Multimedia-Programmierung 6
B j3d Rotation um mehr als eine Achse Spiele- und Multimedia-Programmierung 9
B j3d Kamera Rotation durch Tastendruck Spiele- und Multimedia-Programmierung 12
H Rotation auf Knopfdruck Spiele- und Multimedia-Programmierung 20
T [gelöst] Java3D: Unerwünschte Rotation um die 3.Achse vermeiden? Spiele- und Multimedia-Programmierung 3
W Rotation aller Objekte einer 3D-Szene Spiele- und Multimedia-Programmierung 8
V Jogl: Objekt trotz Rotation immer in gleiche Richtung bewegen Spiele- und Multimedia-Programmierung 5
E Tetris: Rotation der Tetrominos Spiele- und Multimedia-Programmierung 4
C Java3D Rotation um einen Punkt (y-achse) Spiele- und Multimedia-Programmierung 2
aze Transform3D - dauerhafte Rotation Spiele- und Multimedia-Programmierung 3
J Hilfe: Rotation X und Y Achse (Java3d) Spiele- und Multimedia-Programmierung 12
C JAVA3D Rotation um einen bestimmten Punkt Spiele- und Multimedia-Programmierung 20
"Er" Kamera rotation in Java3D Spiele- und Multimedia-Programmierung 2
R Tetris Rotation? Spiele- und Multimedia-Programmierung 7
P Figur Rotation Spiele- und Multimedia-Programmierung 14
G rotation eines würfels Spiele- und Multimedia-Programmierung 9
T Java3D: Rotation und Translation Spiele- und Multimedia-Programmierung 2
S Rotation relativ zur Rotation einer anderen Transform Group Spiele- und Multimedia-Programmierung 3
S Rotation um verschobene Achse Spiele- und Multimedia-Programmierung 7
Quaxli Java 3D - Rotation mit Alpha Spiele- und Multimedia-Programmierung 2
H Probleme bei Rotation Spiele- und Multimedia-Programmierung 9
P Rotation von BufferedImage (Affine Transformation) Spiele- und Multimedia-Programmierung 7
J Problem mit Rotation (Sprite3D) Spiele- und Multimedia-Programmierung 4
S Punkt berechnen, nach Rotation Spiele- und Multimedia-Programmierung 2
W Rotation eines Objektes Spiele- und Multimedia-Programmierung 2
A 2-Achsen Rotation eines Würfels Spiele- und Multimedia-Programmierung 4

Ähnliche Java Themen


Oben