ArrayList转换成float[]问题
归海一啸 2014-05-04 03:34:55
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;
}
...全文
308 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuefeng0707 2014-05-04
  • 打赏
  • 举报
回复
float[] vFloat = GeomBuilder.Vec3fToArr(data[i]);
for (int j = 0; j < vFloat.length; j++) {
floats.add(vFloat[j]);
vFloat= null;
}
这句执行了不会报错吗? vFloat= null; 这个应该在循环外面吧。

50,542

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧