0

这是应该绘制 2 个边为 0.3 的立方体彼此相邻的代码的一部分当我得到的是: 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

就好像第二个盒子只移动了 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

4

1 回答 1

0

看起来您正在创建一个大小为 0.6 的长方体,因此第一个框的 X、Y、Z 值为 +0.3 和 -0.3,因为长方体的中心点为 0,0,0。

第二个框相同,但在一个轴上偏移 0.3,这在其中一个轴上给出 0.3-0.3=0.0 和 +0.3+0.3 = 0.6 值。

这将给出两个在一个轴上重叠一半的框,这似乎与您的图片相匹配。

也许您的意思是创建一个宽度/高度/深度为 0.3/2 的框并将其平移 0.3/2 以使框的中心位于 0.15,0.15 并使用 0.15 而不是 0.3 的比例因子?

于 2013-01-22T00:19:58.783 回答