我正在研究 Java3D 中的一些东西,我知道 TransformGroups 是您通常应用缩放的方式......
但是,我正在尝试创建一种基于缩放向量定义长方体的方法。
所以我有一个单位立方体 1,1,1 -> -1,-1,-1 我想手动应用缩放转换。
private static void scaleCoordinates(IndexedQuadArray indexedQuadArray, Vector3d scaleVector) {
//Create scalar transform
Transform3D scalarTransform = new Transform3D();
scalarTransform.setScale(scaleVector);
// retrieve the vertex coordinates
GeometryInfo indexedQuadArrayGeometryInfo = new GeometryInfo(indexedQuadArray);
Point3f coordinatesToScaleArray [] = indexedQuadArrayGeometryInfo.getCoordinates();
// scale each 3d coordinate
for(Point3f coordinate: coordinatesToScaleArray){
scalarTransform.transform(coordinate);
}
// update the indexed quad array with scaled-coordinates.
indexedQuadArray.setCoordinates(0, coordinatesToScaleArray);
}
现在,当缩放为正整数时它可以工作,但如果我缩放 0.5 或负数,顶点就会变得混乱。
有谁知道怎么了?我认为我应该能够以小于 1 的比例缩放,也许 Transform3D.transform(Point3f) 正在发生一些我不知道的事情。
非常感谢阅读!