我使用以下代码沿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);
答案 0 :(得分:1)
您必须调用TransformGroup.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE)以允许在运行时修改转换。然后,您必须稍后调用TransformGroup.setTransform()来修改其转换。您可以通过不同的变换传递它以使其旋转,移动,...您可以使用以下示例: http://www.java3d.org/animationinteraction.html
您可以使用计时器定期执行任务。此任务可以修改变换(通过计算前一个变换的新变换),您不需要编写循环来执行此操作。