Una forma sencilla y rápida de aprender JAVA, observando y deduciendo cómo se comporta el lenguaje a través de ejemplos prácticos.

martes, 15 de octubre de 2013

Crear una esfera en 3D.

Para crear un objeto 3D es necesario tener instalada la API Java3D. 
Como instalar la API Java3D y agregarla a la IDE de Netbeans pinchar aquí


Codigo:

package esfera3d;

import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.Sphere;
import com.sun.j3d.utils.universe.SimpleUniverse;
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.GraphicsConfiguration;
import javax.media.j3d.BoundingSphere;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;
import javax.media.j3d.DirectionalLight;
import javax.media.j3d.Node;
import javax.vecmath.Color3f;
import javax.vecmath.Point3d;
import javax.vecmath.Vector3f;

public final class Esfera3D extends Applet {

    public Esfera3D() {
        setLayout(new BorderLayout());
        GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
        Canvas3D canvas3D = new Canvas3D(config);
        add("Center", canvas3D);
        BranchGroup escena = crearEscenaGrafico();
        SimpleUniverse simpleU = new SimpleUniverse(canvas3D);
        simpleU.getViewingPlatform().setNominalViewingTransform();
        simpleU.addBranchGraph(escena);

    }

    public BranchGroup crearEscenaGrafico() {
        BranchGroup objPrincipal = new BranchGroup();
        objPrincipal.addChild(CrearEsfera());
        objPrincipal.addChild(CrearIluminacion());
        return objPrincipal;

    }

    private Node CrearEsfera() {
        Sphere esfera = new Sphere(0.3f); //Tamaño esfera (0.3)
        return esfera;
    }

    private Node CrearIluminacion() {
        Color3f colorLuz = new Color3f(1.0f, 0.5f, 6.1f);
        BoundingSphere bounds = new BoundingSphere(new Point3d(0.0, 0.0, 20.0), 100.0);
        Vector3f direccionLuz = new Vector3f(4.0f, -7.0f, -12.0f);
        DirectionalLight luz1 = new DirectionalLight(colorLuz, direccionLuz);
        luz1.setInfluencingBounds(bounds);

        return luz1;
    }

    public static void main(String[] args) {
        Frame frame = new MainFrame(new Esfera3D(), 256, 256); //Tamaño ventana de 256x256 pixeles.
    }
}



Resultado:



Instalación de la API Java3D:


Nos dirigimos a descargar el paquete Java3D en la pagina oficial de oracle.
API Java 3D




Descargamos la correspondiente "Java 3D 1.5.1" (act. oct-2013).
Instalamos dejando todas las opciones que nos viene por defecto.
 

Si fuera el caso en que NetbeansIDE no detectara la nueva API de Java3D, habria que agregarla manualmente de la siguiente forma:

Abrimos NetBeans y nos dirigimos a "Tools -> Ant Library -> [New Library...]"



Library Name: Java3D (cambiamos "MyLibrary" por "Java3D")
Library Type: Class Libraries (lo dejamos por defecto)
[Ok]

 
Nos dirigimos a la libreria que acabamos de crear "Java3D" y le damos al botón [Add JAR/Folder...]
Y agregamos todos los archivos ".JAR" ubicados en la siguiente ruta:
"C:\Program Files\Java\Java3D\1.5.1\lib\ext".



Y le damos al [Ok].


Nos dirigimos al menú Projects, carpeta Libraries -> Add Library...


 
Elegimos "Java3D" y pulsamos botón [Add Library].


Listo.


Con la tecnología de Blogger.