-5

このプログラムで配列がどのように使用されているかはわかりません。このプログラムの 2 つの配列がどのように使用されているか、誰か説明してもらえますか?

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);
    }
}
4

1 に答える 1

0

このコードは、最初に点の配列と法線の配列を作成し、後でそれらを参照して Figure を作成することによって機能します。への 4 つの呼び出しsetCoordinate()は、各頂点の位置を設定します。

int[] coords4 つの面を構成する 4 つの三角形の頂点の位置を格納します (各三角形には 3 つの頂点があり、合計 12 の頂点があります) 。最初の三角形は 0 番目、1 番目、2 番目の頂点で構成され、次の三角形は 0 番目、3 番目、1 番目の頂点などで構成されます。

法線のコードは、頂点のコードと同様に機能します。

于 2013-11-15T04:10:08.457 に答える