我正在创建一个程序来渲染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 [] [] []”不匹配”。预先感谢。
答案 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