例如,有这样的代码
//create new cylinder
Cylinder cylinder = new Cylinder(2, 6);
...
//somewhere add transform
cylinder.getTransforms().add(new Translate(0, -5, 0));
...
//and somewhere i call
cylinder.setTranslateX(3);
cylinder.setTranslateY(-2);
结果,圆柱体在场景{3,-7,0}上移动并且它的坐标
为了获得实际的坐标,我尝试这样的事情:
double coordY = 0;
for(Transform t : cylinder.getTransforms() ){
coordY += t.getTy();
}
coordY += cylinder.getTranslateY();
它起作用了,但这显然不是最合理的方法...更新1
正确标记为fabian
如果相对于原点以外的点进行了旋转,则该方法不考虑在内
例如:
Rotate rotate = new Rotate();
rotate.setAngle(60);
rotate.setPivotX(2);
rotate.setPivotY(1);
rotate.setPivotZ(3);
cylinder.getTransforms().add(rotate);
在这种情况下,结果将不正确
如何获得此圆柱体或任何其他对象(例如Shape3d或MeshView)的真实坐标{x,y,z}
谢谢!
例如,有这样的代码// //创建新的圆柱体Cylinder cylinder = new Cylinder(2,6); ... //在某处添加变换圆柱体。getTransforms()。add(new Translate(0,-5,0))...