Hi
Thanks for the info...:-)
-----Original Message-----
From: Barry Walsh [SMTP:[EMAIL PROTECTED]]
Sent: Tuesday, January 11, 2000 8:31 PM
To: [EMAIL PROTECTED]
Subject: Re: [JAVA3D] rotX and rotY
Hello,
I have found difficulty with the setEuler(Vector3D) method. I found that
it did not reflect exactly the motions that I expected, or needed to
reproduce. didn't investigate very far, because I found something similar to
what David Halle used. Here's what I use to get 6 degrees of motion for ship
hulls.
Motion motion = (Motion)motions.get(index); // retrieves a
single motion slice with 6 degrees....
float roll = motion.getRoll();
float pitch = motion.getPitch();
float yaw = motion.getYaw();
float heave = motion.getHeave();
float sway = motion.getSway();
float surge = motion.getSurge();
// STEP 2 CREATE THE ROTATION MATRIX
// Create <file:// Create> a matrix corresponding to roll pitch
and yaw
Matrix3f mat1 = new Matrix3f();
mat1.rotX(Math.toRadians(roll));
Matrix3f mat2 = new Matrix3f();
mat2.rotY(Math.toRadians(pitch));
Matrix3f mat3 = new Matrix3f();
mat3.rotZ((Math.toRadians(yaw));
// combine roll pitch yaw matrices
mat1.mul(mat2);
mat1.mul(mat3);
//STEP <file://STEP> 3 CREATE THE TRANSLATION VECTOR
Vector3f vec = new Vector3f(surge,sway,heave);
// STEP 4 COMBINE INTO ONE TRANSFORM AND SET IN HULLTG
// an alternative would be to get the Transform from the TG and
reset the values...
Transform3D next = new Transform3D(mat1,vec,1.0f); // 1.0f =
scale..
hullTG.setTransform(next);
Just another idea....
Cheers,
B.
-----------------------------------------------------
Oceanic Consulting Corporation
P.O. Box 28009
St. John's, NF, Canada
A1B 4J8
(709) 722-9060/9064(fax) http://www.oceaniccorp.com
<http://www.oceaniccorp.com/>
-----------------------------------------------------
-----Original Message-----
From: David Hall� [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, January 11, 2000 5:14 AM
To: [EMAIL PROTECTED]
Subject: Re: [JAVA3D] rotX and rotY
>If you multiply seperate rotations, the second rotation will use the
>resulting object of the first rotation.
>If however you want to do several rotations at once, e.g. roll/pitch/yaw
for
>an aircraft, you should use the
>Transform3D.setEuler(Vector3d) method.
I use the roll/pitch/yaw for an aircraft (ie. a transformgroup) like this:
// T is the current Transform3D for my TransformGroup
public void rotate(double[] rotationAngles) {
Transform3D temp = new Transform3D();
temp.rotY(rotationAngles[0]);
T.mul(temp);
temp.rotZ(rotationAngles[1]);
T.mul(temp);
temp.rotX(rotationAngles[2]);
T.mul(temp);
setTransform(T);
}
David.
<< File: ATT00001.htm >>
�������������������������o unsubscribe, send email to [EMAIL PROTECTED] and
include in the body
of the message "signoff JAVA3D-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".