Gráficos por computadora usando JOGL. Oscar Gabriel Caballero Martínez. Читать онлайн. Newlib. NEWLIB.NET

Автор: Oscar Gabriel Caballero Martínez
Издательство: Bookwire
Серия:
Жанр произведения: Математика
Год издания: 0
isbn: 9786073050302
Скачать книгу
*.class. Para ver cómo se trabaja con JOGL se transcribirá el siguiente código [jogamp, 2016].

      1. package Graficacion;

      2.

      3. import com.jogamp.opengl.GLAutoDrawable;

      4. import com.jogamp.opengl.GLEventListener;

      5. import com.jogamp.opengl.awt.GLCanvas;

      6. import com.jogamp.opengl.util.Animator;

      7. import java.awt.Frame;

      8. import java.awt.event.WindowAdapter;

      9. import java.awt.event.WindowEvent;

      10. /**

      11. *

      12. * @author Caballero Martínez Oscar Gabriel

      13. * Caballero Jiménez Oscar Emilio

      14. * Caballero Jiménez Mariana

      15. * Jiménez Jacinto Verónica

      16. *

      17. * @Group 2803

      18. *

      19. * @Fecha 10/febrero/2016

      20. *

      21. * @Materia Graficación por Computadora

      22. *

      23. */

      24. public class Ventana implements GLEventListener {

      25. public static void main(String[] args) {

      26. Frame frame = new Frame("Ventana.java");

      27. GLCanvas canvas = new GLCanvas();

      28. canvas.addGLEventListener(new Ventana());

      29. frame.add(canvas);

      30. frame.setSize(640, 480);

      31. final Animator animator = new Animator(canvas);

      32. frame.addWindowListener(new WindowAdapter() {

      33. @Override

      34. public void windowClosing(WindowEvent e) {

      35. // Run this on another thread than the AWT event queue to

      36. // make sure the call to Animator.stop() completes before

      37. // exiting

      38. new Thread(new Runnable() {

      39. public void run() {

      40. animator.stop();

      41. System.exit(0);

      42. }

      43. }).start();

      44. }

      45. });

      46. // Center frame

      47. frame.setLocationRelativeTo(null);

      48. frame.setVisible(true);

      49. animator.start();

      50. }

      51. @Override

      52. public void init(GLAutoDrawable glad) {

      53. }

      54. @Override

      55. public void dispose(GLAutoDrawable glad) {

      56. }

      57. @Override

      58. public void display(GLAutoDrawable glad) {

      59. }

      60. @Override

      61. public void reshape(GLAutoDrawable glad, int i, int i1, int i2, int i3){

      62. }

      63. }

      Código 2.1 Ventana.java

      Al ejecutar el programa anterior tendremos la siguiente salida.

figura11

      Figura 2.3 Programa “Ventana”. Fuente: Elaboración propia.

      Como siempre se trabajará con el mismo código, se escribirá en la plantilla original de los archivos class que crea NetBeans el código anterior pero con generalidades. Para ello es necesario abrir la plantilla.

figura12

      Figura 2.4 Menú para modificar la plantilla de los class.

       Fuente: Elaboración propia.

      Posteriormente, en las plantillas asociadas a Java se abre la referente a los archivos class con el editor.

figura13

      Figura 2.5 Abrir con el editor los class

       Fuente: Elaboración propia.

      Y se escriben las siguientes líneas:

      1. import com.jogamp.opengl.GLAutoDrawable;

      2. import com.jogamp.opengl.GLEventListener;

      3. import com.jogamp.opengl.awt.GLCanvas;

      4. import com.jogamp.opengl.util.Animator;

      5. import java.awt.Frame;

      6. import java.awt.event.WindowAdapter;

      7. import java.awt.event.WindowEvent;

      8. </#if>

      9. /**

      10. *

      11. * @authors Caballero Jiménez Mariana

      12. * Caballero Jiménez Oscar Emilio

      13. * Caballero Martínez Oscar Gabriel

      14. * Jiménez Jacinto Verónica

      15. *

      16. * @Tema: Libro

      17. *

      18. * @Fecha ${date}

      19. *

      20. */

      21. public class ${name} implements GLEventListener {

      22. public static void main(String[] args) {

      23. Frame frame = new Frame("${name}.java");

      24. GLCanvas canvas = new GLCanvas();

      25. canvas.addGLEventListener(new ${name}());

      26. frame.add(canvas);

      27. frame.setSize(640, 480);

      28. final Animator animator = new Animator(canvas);

      29. public void windowClosing(WindowEvent e) {

      30. // Run this on another thread than the AWT event queue to

      31. // make sure the call to Animator.stop() completes before

      32. // exiting

      33. new Thread(new Runnable() {

      34. public void run() {

      35. animator.stop();

      36. System.exit(0);

      37. }

      38. }).start();

      39. }

      40. });

      41. // Center frame

      42. frame.setLocationRelativeTo(null);

      43. frame.setVisible(true);

      44. animator.start();

      45. }

      46. @Override

      47. public void init(GLAutoDrawable glad) {

      48.