Graphics 在Java3d中手动缩放单位立方体

Graphics 在Java3d中手动缩放单位立方体,graphics,transformation,java-3d,3d-rendering,Graphics,Transformation,Java 3d,3d Rendering,我正在研究Java3D中的一些东西,我知道TransformGroup是您通常应用缩放的方式 然而,我试图创建一种基于缩放向量定义长方体的方法 所以我有一个单位立方体1,1,1->-1,-1,-1,我想手动应用一个缩放变换 private static void scaleCoordinates(IndexedQuadArray indexedQuadArray, Vector3d scaleVector) { //Create scalar transform Transfo

我正在研究Java3D中的一些东西,我知道TransformGroup是您通常应用缩放的方式

然而,我试图创建一种基于缩放向量定义长方体的方法

所以我有一个单位立方体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)带来了一些我不知道的东西


非常感谢您的阅读

我不希望负数起作用。当你考虑它时,缩放变换实际上只是一个倍数。因此,使用向量(.5、.6、.7)缩放点(1,1,1)将得到新点(.5、.6、.7)

如果你“缩放”一个负数,你会把立方体翻过来,所有的法线和边都会出错

能否提供四边形阵列中的顶点列表以及正在使用的scaleVector