如何在Java 3D中以特定角度连续旋转矩形

时间:2015-08-31 13:53:42

标签: java rotation java-3d

我使用以下代码沿x轴旋转矩形。但问题是,我想通过循环连续改变旋转角度,或者从用户输入中获取值。由于我是java 3D的新手,我不知道该怎么做。 任何形式的帮助对我来说都很棒,谢谢!

  SimpleUniverse universe = new SimpleUniverse();
  BranchGroup group = new BranchGroup();
  ColorCube c = new ColorCube(0.3);

  Transform3D t1 = new Transform3D();
  t1.rotX(Math.PI/2.0d);    

  TransformGroup tg1 = new TransformGroup(t1);

  tg1.addChild(c);
  group.addChild(tg1);
  group.compile();

  universe.getViewingPlatform().setNominalViewingTransform();
  universe.addBranchGraph(group);

1 个答案:

答案 0 :(得分:1)

您必须调用TransformGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE)以允许在运行时修改转换。然后,您必须稍后调用TransformGroup.setTransform()来修改其转换。您可以通过不同的变换传递它以使其旋转,移动,...您可以使用以下示例: http://www.java3d.org/animationinteraction.html

您可以使用计时器定期执行任务。此任务可以修改变换(通过计算前一个变换的新变换),您不需要编写循环来执行此操作。