Transform Java3D变换向量异常行为
这是代码的一部分,应该画两个相邻的0.3边的立方体 我得到的结果是: (它们彼此接近一半)我试着打印变换,它们看起来很好: 一, 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 二, 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轴的变换被添加时,事情就会中断Transform Java3D变换向量异常行为,transform,java-3d,Transform,Java 3d,这是代码的一部分,应该画两个相邻的0.3边的立方体 我得到的结果是: (它们彼此接近一半)我试着打印变换,它们看起来很好: 一, 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 二, 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);
}
}
私有分支组根组;
公共无效添加框(浮动dx){
长方体长方体1=新长方体(0.3f,0.3f,0.3f,外观);
TransformGroup tg=新TransformGroup();
Transform3D transform=新建Transform3D();
向量3f向量=新向量3f(dx,0f,0f);
transform.setTranslation(向量);
tg.setTransform(transform);
tg.addChild(长方体1);
根群addChild(tg);
}
公共无效地址框(){
对于(int i=0;i它看起来像是在创建一个大小为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的比例因子?这是两件事,尺寸确实是0.6,而它以0,0,0为中心的事实会对多个不同大小的长方体造成严重破坏。我是特拉将所有元素按尺寸的一半进行平移,使一个角位于0,0,0,并且有效