java3d中的旋转对象
我尝试根据Java3D中鼠标的移动来旋转立方体。无论立方体如何旋转,我都希望当我向上拖动光标时,立方体会朝同一方向旋转。这是所有可能的运动 我怎样才能继续?我猜它必须放在摄像机的坐标中 以下是我的功能:java3d中的旋转对象,java,object,3d,mouse,Java,Object,3d,Mouse,我尝试根据Java3D中鼠标的移动来旋转立方体。无论立方体如何旋转,我都希望当我向上拖动光标时,立方体会朝同一方向旋转。这是所有可能的运动 我怎样才能继续?我猜它必须放在摄像机的坐标中 以下是我的功能: public void objectRotate(TransformGroup objectInInteraction, double dh, double dp, double dr) { Transform3D oldT3D = new Transform3D();
public void objectRotate(TransformGroup objectInInteraction, double dh,
double dp, double dr) {
Transform3D oldT3D = new Transform3D();
objectInInteraction.getTransform(oldT3D);
Transform3D tx = new Transform3D();
Transform3D ty = new Transform3D();
Transform3D tz = new Transform3D();
Transform3D tc = new Transform3D();
//camera.getTransform(tc);
double x = 0, y = 0, z = 0;
x = Math.PI * dh / 180;
y = Math.PI * dp / 180;
z = Math.PI * dr / 180;
tx.rotX(x);
tc.mul(tx);
ty.rotY(y);
tc.mul(ty);
tz.rotZ(z);
tc.mul(tz);
oldT3D.mul(tc);
objectInInteraction.setTransform(oldT3D);
}
dh是一个左右移动,dp,向上和向下
谢谢 这对我很有用
public void objectRotate(TransformGroup objectInInteraction, double dh,
double dp, double dr)
{
// Transform3D oldT3D = new Transform3D();
// objectInInteraction.getTransform(oldT3D);
Transform3D tx = new Transform3D();
Transform3D ty = new Transform3D();
Transform3D tz = new Transform3D();
Transform3D tc = new Transform3D();
//camera.getTransform(tc);
double x = 0, y = 0, z = 0;
x = Math.PI * dh / 180;
y = Math.PI * dp / 180;
z = Math.PI * dr / 180;
tx.rotX(x);
tc.mul(tx);
ty.rotY(y);
tc.mul(ty);
tz.rotZ(z);
tc.mul(tz);
// oldT3D.mul(tc);
objectInInteraction.setTransform(tc);
}
;-)