Panama Hitek Logo
Panama Hitek Logo

Java 3D: Programando en la tercera dimensión

Programar y manipular objetos en tercera dimensión utilizando Java es posible gracias a la librería Java 3D, de la cual voy a escribir en este post.

En Java, para generar gráficos en tercera dimensión es posible gracias a Java 3D. Se requiere descargar el siguiente archivo:

Ahora vamos a crear una sencilla aplicación donde tenemos un cubo en 3D y lo haremos rotar en los 3 ejes, el X, el Y y el Z.

Creamos un proyecto en Netbeans y dejamos intacta la clase principal que se genera con dicho proyecto. Yo lo llamaré 3DTest.

Java 3D

Se importa la librería Java 3D que está disponible en el enlace arriba. Se deben agregar los 3 archivos que están disponibles en la carpeta lib.

netbeans

Ahora se necesita crear algunos objetos.

[codesyntax lang=»java»]

[/codesyntax]

En el objeto «universo» es donde se coloca todo. En el objeto «grupo» van las figuras que se generen. En el objeto «cubo» se genera un cubo cuyo tamaño se establece en el parámetro que aparece como 0.3.

Los objetos «GT» y «transformar» son los que nos van a permitir modificar las propiedades del cubo que se ha generado.

Al crear estos objetos nos aparecerá la opción de importar las librerías necesarias.

netbeans

Ahora voy a crear un método que contendrá las instrucciones para crear el cubo en 3D. Renombraré la clase a Cube3D y crearé el método Cube3D.

Las instrucciones serán las siguientes:

[codesyntax lang=»java» lines=»no»]

[/codesyntax]

Se ha agregado el cubo al grupo de transformación, que se agrega al grupo que se agrega al universo. Se debe invocar este método desde el Main de nuestro proyecto.

netbeans

Al ejecutar este código, el resultado es el siguiente:

Sin título-4

Le voy a aumentar un poco el tamaño, cambiando el parámetro de la declaración del cubo ( ColorCube cube = new ColorCube(0.1);) a 0.3:

Sin título-4

Ahora voy a hacer que el cubo empiece a rotar. Para ello me valdré de los Java Threads de los cuales ya he hablado antes en este blog.

Implementaré la interfaz runnable, con los métodos abstractos que ello implica.

netbeans

Voy a declarar un hilo, lo voy a inicializar y voy a establecer que las propiedades del cubo puedan ser modificadas en tiempo de ejecución.

netbeans

Ahora colocaremos la rotación. En el método abstracto, se coloca lo siguiente:

netbeans

Al ejecutar el código, el resultado obtenido es el siguiente:

Untitled

Como se puede observar el objeto rota en torno al eje Y. Se puede hacer que rote en torno a X o a Z, solo es necesario cambiar la instrucción.

El archivo donde está este proyecto lo pueden descargar desde el siguiente enlace.

Por último, un video mostrando el proyecto en tiempo de ejecución:


Para cualquier duda u opinión, no duden en comentar. Saludos.

Si desean más información sobre Java 3D, pueden visitar el siguiente sitio web (está en inglés): http://www.java3d.org/

Antony García González
Antony García González
Ingeniero Electromecánico, egresado de la Universidad Tecnológica de Panamá. Miembro fundador de Panama Hitek. Entusiasta de la electrónica y la programación.

Posts relacionados

9 COMENTARIOS

  1. Hola amigo, me ayudó mucho tu página, pero me surgió una duda. Me gustaría hacer un programa de un cubo rubik ¿Cómo puedo dividir el cubo? O, si tendría que agregar más ¿Cómo lo haría? Gracias

  2. HOLA QUE TAL, SERA QUE ME PUEDEN AYUDAR CUANDO EJECTO EL CODIGO ME SALE ESTE ERROR( Exception in thread «AWT-EventQueue-0» java.lang.UnsatisfiedLinkError: no J3D in java.library.path) GRACIAS

    • Hola Ale a mi me paso lo mismo tuve q copiar el «j3dcore-ogl.dll» a la carpeta C:\Program Files\Java\jdk-11.0.2\bin
      Habia subido la librerias al path pero no me toma el dll y me tiraba el error ese.
      Por ahora me corre XP

  3. Muy buena explicación, pero tengo una duda, Si quiero moverlo sobre 2 ejes al mismo tiempo ¿Cómo seria? ¿tendría que agregar otro hilo?

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí

Post relacionados