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();