谢谢你回复我的帖子,不过用了你写得那些代码,报了个错: javax.vecmath.SingularMatrixException: cannot invert matrix at javax.media.j3d.Transform3D.invertAffine(Transform3D.java:2831) at javax.media.j3d.Transform3D.invert(Transform3D.java:2687) at javax.media.j3d.RenderBin.updateObject(RenderBin.java:791) at javax.media.j3d.MasterControl.updateMirrorObjects(MasterControl.java: 2729) at javax.media.j3d.MasterControl.runMonitor(MasterControl.java:3427) at javax.media.j3d.MasterControl.doWork(MasterControl.java:2986) at javax.media.j3d.MasterControlThread.run(MasterControlThread.java:28) 不知道是怎么回事。 您有没有些java3D的代码,能让我看看呢?网上找来的或者您自己学习时写得小东西,小例子都行,我想了解些控制的东西,比如我帖子里的那个视角的问题,还有些节点的添加,删除、修改等等问题的。我没有找到什么好的例子。刚接触Java3D,麻烦您了。 如果有的话麻烦发到
RotY 水平的转动,RotX 仰视、俯视。再用Mul方法。
比如我的情况是这样的:
在原点处有一个box,基本视点是SimpleUniverse默认的(0,0,2.41), 现在要实现通过ViewingPlatform的改变而分别实现让视点绕X轴,Z轴旋转,而视点的中心
始终是对着原点的。麻烦哪位大哥能不能给写上两句代码给讲讲。
Transform3D t3=new Transform3D();
t3.rotX(Math.toRadians(30));
Transform3D t4=new Transform3D();
t4.rotY(Math.toRadians(30));
t3.mul(t4);
u.getViewingPlatform().getViewPlatformTransform().setTransform(t4);结果,看不到在原点的box了,视点跑了很远。
而如果,在最后加上
Vector3d viewpoint=new Vector3d(.0,.0,2.41);
Transform3D t=new Transform3D();
t.set(viewpoint);
u.getViewingPlatform().getViewPlatformTransform().setTransform(t);
则视点又变成了原来的(.0,.0,2.41)郁闷了,哪位大哥给指点指点阿!!!!
下面是我的部分代码:实现了相对的移动
//getTrans,tempOneTrans,tempTwoTrans,has already define
universe.getViewingPlatform().getViewPlatformTransform().getTransform(getTrans);
tempOneTrans.set(0);
tempOneTrans.rotY(0.5);
tempTwoTrans.set(0);
Vector3d viewpoint=new Vector3d(.0,.0,2.41);
tempTwoTrans.setTranslation(viewpoint);
tempOneTrans.mul(tempTwoTrans);
getTrans.mul(tempOneTrans);
universe.getViewingPlatform().getViewPlatformTransform().setTransform(getTrans);
javax.vecmath.SingularMatrixException: cannot invert matrix
at javax.media.j3d.Transform3D.invertAffine(Transform3D.java:2831)
at javax.media.j3d.Transform3D.invert(Transform3D.java:2687)
at javax.media.j3d.RenderBin.updateObject(RenderBin.java:791)
at javax.media.j3d.MasterControl.updateMirrorObjects(MasterControl.java:
2729)
at javax.media.j3d.MasterControl.runMonitor(MasterControl.java:3427)
at javax.media.j3d.MasterControl.doWork(MasterControl.java:2986)
at javax.media.j3d.MasterControlThread.run(MasterControlThread.java:28) 不知道是怎么回事。 您有没有些java3D的代码,能让我看看呢?网上找来的或者您自己学习时写得小东西,小例子都行,我想了解些控制的东西,比如我帖子里的那个视角的问题,还有些节点的添加,删除、修改等等问题的。我没有找到什么好的例子。刚接触Java3D,麻烦您了。
如果有的话麻烦发到