我不确定如何在此程序中使用数组。任何人都可以向我解释这个程序中的两个数组是如何使用的?
import javax.vecmath.*;
import javax.media.j3d.*;
public class Tetrahedron extends IndexedTriangleArray {
public Tetrahedron() {
super(4, TriangleArray.COORDINATES | TriangleArray.NORMALS, 12);
setCoordinate(0, new Point3f(1f, 1f, 1f));
setCoordinate(1, new Point3f(1f, -1, -1f));
setCoordinate(2, new Point3f(-1f, 1f, -1f));
setCoordinate(3, new Point3f(-1f, -1f, 1f));
int[] coords = { 0, 1, 2, 0, 3, 1, 1, 3, 2, 2, 3, 0 };
float n = (float) (1.0 / Math.sqrt(3));
setNormal(0, new Vector3f(n, n, -n));
setNormal(1, new Vector3f(n, -n, n));
setNormal(2, new Vector3f(-n, -n, -n));
setNormal(3, new Vector3f(-n, n, n));
int[] norms = { 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3 };
setCoordinateIndices(0, coords);
setNormalIndices(0, norms);
}
}
答案 0 :(得分:0)
代码首先创建一个点数组和一个法线数组,然后再引用它们来创建数字。对setCoordinate()
的四次调用设置了每个顶点的位置。
int[] coords
存储构成4个面的4个三角形的顶点位置(每个三角形有3个顶点,总共12个顶点)。第一个三角形由第0个,第1个和第2个顶点组成,下一个三角形包括第0个,第3个和第1个顶点等。
法线的代码以与顶点
类似的方式工作