如何在处理(v。3.4)中将元素附加到3维数组?

时间:2019-06-13 09:27:03

标签: processing

我正在创建一个程序来渲染3D图形。我有一个3D数组“形状”,其中包含要渲染的所有多边形。它是一个多边形数组,其中每个多边形本身就是一个点数组,每个点都是3个整数值(x,y,z坐标)的数组。我尝试过并无法使用append()函数。我还能如何使其工作?

我尝试使用append()函数,但这似乎不适用于多维数组。

int[][][] addPolyhedron(int[][][] shapes, int[][][] polyhedron)
{
    for(int i = 0; i < polyhedron.length; i ++)
    {
        shapes = append(shapes, polyhedron[i]);
    {
    return shapes;
}

我希望这可以扩展阵列形状以包括阵列多面体中的所有多边形。但是,我收到一条错误消息,提示“类型不匹配,“ java.lang.Object”与“ int [] [] []”不匹配”。预先感谢。

1 个答案:

答案 0 :(得分:0)

在Java中,(任何尺寸的)数组都是不可扩展的-大小是在实例化时定义,分配和固定的。您想添加到shapes中(并因此动态调整其大小)。尽管Processing确实提供了append()函数,但我认为使用ArrayList内置Java数据类型更为合适。

您的函数可以重构为如下形式:

ArrayList<Integer[][]> addPolyhedron(ArrayList<Integer[][]> shapes, ArrayList<Integer[][]> polyhedron)
{
    shapes.addAll(polyhedron);
    return shapes;
}

请注意,int[][]已成为Integer[][],因为无法用原始类型({{1},ArrayList,{{1} }等)。

将单独的程序定义的多边形添加到int会像这样:

bool

float ArrayList获取坐标将像这样完成:

shapes