Nwlapcug.com


Come fare una piramide a base pentagonale in Java

Il Java 3D API consente ai programmatori di creare forme tridimensionali in Java. Lo fa presentando rappresentazioni del codice dello spazio tridimensionale che include come gli utenti guardano l'oggetto e come illuminazione colpisce l'oggetto. Utilizzando gli strumenti 3D di Java, è possibile creare forme semplici come piramidi definendo alcuni punti sulla piramide e da colorare con i metodi di colorazione incluso.

Istruzioni

1

Importare le librerie 3D e creare una classe di "Piramide":

importare java.awt.Color;
importazione com.sun.j3d.utils.geometry.GeometryInfo;
importazione com.sun.j3d.utils.geometry.NormalGenerator;
importazione com.sun.j3d.utils.universe.SimpleUniverse;
importazione javax.media.j3d. ;
importare javax.vecmath.
;

public class PyramidExample {
}

2

Creare punti tridimensionali che rappresentano la base e il vertice della piramide:

Public Shared Sub main (String [] args) {
SimpleUniverse u = nuovo SimpleUniverse();
BranchGroup g = nuovo BranchGroup();

Point3f e = Point3f nuovo (1.0 f, 0.0 f, 0.0 f);
Point3f s = Point3f nuovo (0.0 f, 0.0 f, 1.0 f);
Point3f w = Point3f nuovo (-1.0 f, 0.0 f, 0.0 f);
Point3f n = Point3f nuovo (0.0 f, 0.0 f, 1.0 f);
Point3f t = new Point3f (0.721f, 0.0 f, 0.0 f);

3

Creare la geometria per collegare quei punti. Questo codice disegna un triangolo separato per ogni lato per quattro lati, più due creando una base quadrata:

Piramide di TriangleArray = new TriangleArray (18,
TriangleArray.COORDINATES);
pyramidGeometry.setCoordinate (0, e);
pyramidGeometry.setCoordinate (1, t);
pyramidGeometry.setCoordinate (2, s);

pyramidGeometry.setCoordinate (3, s);
pyramidGeometry.setCoordinate (4, t);
pyramidGeometry.setCoordinate (5 w);

pyramidGeometry.setCoordinate (6 w);
pyramidGeometry.setCoordinate (7, t);
pyramidGeometry.setCoordinate (8, n);

pyramidGeometry.setCoordinate (9, n);
pyramidGeometry.setCoordinate (10, t);
pyramidGeometry.setCoordinate (11, e);

pyramidGeometry.setCoordinate (12, e);
pyramidGeometry.setCoordinate (13, s);
pyramidGeometry.setCoordinate (14, w);

pyramidGeometry.setCoordinate (15 w);
pyramidGeometry.setCoordinate (16, n);
pyramidGeometry.setCoordinate (17, e);

GeometryInfo ginfo = nuovo GeometryInfo(pyramid);
NormalGenerator ng = nuovo NormalGenerator();
ng.generateNormals(ginfo);

GeometryArray risultato = ginfo.getGeometryArray();