This site is currently read-only as we are migrating to Oracle Forums for an improved community experience. You will not be able to initiate activity until January 31st, when you will be able to use this site as normal.

    Forum Stats

  • 3,890,899 Users
  • 2,269,649 Discussions
  • 7,916,821 Comments

Discussions

Rotationinterpolator axis

843799
843799 Member Posts: 49,999
edited Aug 9, 2001 5:54PM in Java 3D
I've noticed, ALL of the tutorials use a rotation over the Y-axis.

So, since i'm new to java3d (not to java), i wonder how I could instantiate the rotationinterpolator to rotate over the other two axes, namely the X-axis and the Z-axis.

And is the Y-axis rotation a default value for rotationinterpolator?


Tnx

Comments

  • 843799
    843799 Member Posts: 49,999
    I have noticed the same thing in the tutorials i have looked at, and I havent been able to find help anywhere. I do know that the y-axis the default axis of rotation. I think you have to do something like this:

    1. declare a new Transform3D object

    Tranform3D newAxis = new Transform3D();

    2. "rotate" this newAxis to the axis you want it to rotate around, using the rotX,rotY,rotZ --> for example,

    newAxis.rotZ(Math.PI/2)

    will rotate newAxis around the z-axis by 90 degrees

    3. when you call the RotationInterpolator constructor, pass newAxis into the parameter list

    I am not sure if this works, but you can give it a try. If you find the solution, please post it here.
  • 843799
    843799 Member Posts: 49,999
    the rotation is usually linked to a matrix of an object


    Transform3D transform = new Transform3D();
    transform.rotX((Math.PI/180.0d));
    //this will rotate the X-axis by one degree

    Matrix3f m1 = new Matrix3f();
    //this creates a new matrix

    transform.get(m1);
    //this extracts the roatated matrix from the transform

    Matrix3f m4 = new Matrix3f();
    m4.mul(myExactOrientation, m1);
    //if you want to apply the rotation to an existing matrix
    //of an object you have to multiply the two matrices
    //and then save it in a new matrix.

    transform.set(m4);
    //You can then apply the new
    //matrix to the transform and then to the object
    //myExactOrientation is a matrix too (the original one)

    objTrans.setTransform(transform);
    //objTrans is linked to the object better said to the
    //TransformGroup


    I hope this helped! if you have any further questions don't hesitate to contact me
    sincerely Till Brenner
    DaimlerChrysler, Germany
  • 843799
    843799 Member Posts: 49,999
    yep, tnx!

    It works now...
This discussion has been closed.