これは、サイド 0.3 の 2 つの立方体を隣り合わせて描画するコードの一部です。代わりにこれを取得すると、次のようになります: http://imageshack.us/photo/my-images/189/89254345.png/ (それらは途中で変換を印刷してみましたが、問題ないようです。
1
1.0、0.0、0.0、0.0
0.0、1.0、0.0、0.0
0.0、0.0、1.0、0.0
0.0、0.0、0.0、1.0
2
1.0、0.0、0.0、0.3
0.0、1.0、0.0、0.0
0.0、0.0、1.0、0.0
0.0、0.0、0.0、1.0
2 番目のボックスが 0.15 だけ移動したかのようですが、dx に 2 を掛けると、y 軸または z 軸を横切る変換で異なる次元のより多くの直方体が追加されると、問題が発生します。
private BranchGroup rootGroup;
public void addBox(float dx){
Cuboid Cuboid1 = new Cuboid(0.3f ,0.3f, 0.3f, appearence);
TransformGroup tg = new TransformGroup();
Transform3D transform = new Transform3D();
Vector3f vector = new Vector3f(dx, 0f, 0f);
transform.setTranslation(vector);
tg.setTransform(transform);
tg.addChild(Cuboid1);
rootGroup.addChild(tg);
}
public void addBoxes(){
for(int i=0;i<2;i++){
addBox(i*0.3f);
}
}
直方体クラスはここからです: http://www.java2s.com/Code/Java/3D/Java3DBoxandacustomCuboidimplementation.htm