public static class Vec3f
{
public final float x, y, z;
public Vec3f
(
float x,
float y,
float z
)
{
this.x = x;
this.y = y;
this.z = z;
} /*Vec3f*/
} /*Vec3f*/
然后我通过这种方法将参数转换成float[],主要为了进行三维模型渲染,但是模型渲染出来有破面,我猜想可能是这个转换的方法有问题,导致一些点的数据位置不正确,请大神指教!
public static float[] makeFloatArr(ArrayList<Vec3f> obj)
{
List<Float> floats = new ArrayList<Float>();
// GeomBuilder.Vec3f[] data= (Vec3f[]) obj.toArray();//object[]不能被強制轉換成vec3f
Vec3f[] data = new Vec3f[obj.size()];
int n = 0;
for (Vec3f f : obj) {
data[n++] = f;
}
for (int i = 0; i < data.length; i++) {
float[] vFloat = GeomBuilder.Vec3fToArr(data[i]);
for (int j = 0; j < vFloat.length; j++) {
floats.add(vFloat[j]);
vFloat= null;
}
}
float[] floatArray = new float[floats.size()];
int i = 0;
for (Float f : floats) {
// floatArray[i++] = (f != null ? f : 0);
floatArray[i++] = f;
}
return floatArray;
}
...全文
3081打赏收藏
ArrayList<Object>转换成float[]问题
public static class Vec3f { public final float x, y, z; public Vec3f ( float x, float y, float z ) { this.x = x; this.y = y; this.z = z; } /*Vec3f*/ } /*Vec3f*/ 然后我通过这种方法将参数转换成float[],主要为了进行三维模型渲染,但是模型渲染出来有破面,我猜想可能是这个转换的方法有问题,导致一些点的数据位置不正确,请大神指教! pu