Tutorialdenetbeansyopenglpedrolopezsalazar 120103154712-phpapp02
Upcoming SlideShare
Loading in...5
×
 

Tutorialdenetbeansyopenglpedrolopezsalazar 120103154712-phpapp02

on

  • 507 views

 

Statistics

Views

Total Views
507
Views on SlideShare
507
Embed Views
0

Actions

Likes
0
Downloads
16
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Tutorialdenetbeansyopenglpedrolopezsalazar 120103154712-phpapp02 Tutorialdenetbeansyopenglpedrolopezsalazar 120103154712-phpapp02 Document Transcript

  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Este tutorial lo realice con el propósito de ayudar a otros en cuanto a la conexión y pruebade los programas en opengl y netbeans.Primero descarguen las librerías que ocuparemos lwjgl-sourse-2.7.1.zip , lwjgl-docs-2.7.1.zip,lwjgl-2.7.1.zipTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 1
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1http://sourceforge.net/projects/java-game-lib/files/Official%20Releases/LWJGL%202.7.1/Descarga este código y alójalo en tu escritoriohttp://sites.google.com/site/tlazalohua/Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 2
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Enseguida descomprime el archivo lwjgl-2.7.1.zip y la carpeta que lleva el mismo nombrey alójalos en tus documentos.a lwjglDas doble clic a esta carpeta recién cambiada el nombre das clic a la carpeta doc y en ellaay un archivo llamada readme a esta dale doble clic.Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 3
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Esto se hace para saber que el programa este funcionando correctamente. Ábrelo con un bloqde notas.Enseguida Accesa al comando ejecutar o oprime las teclas inicio + rEscribe cmd y enterTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 4
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Enseguida te aparece la pantalla negra el objetivo es acesar a la carpeta donde se encuentrael archivo de prueba que esta dentro de la carpeta lwjgl para ello sigue estos pasos:Mete a tus documentos , a la carpeta lwjglEnseguida nos vamos al archivo que abrimos anterior mete llamado readme de la carpeta docy pegamos este escrito:Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 5
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1nota: debemos de borrarle el signo de mayor quejava -cp .;res;jarlwjgl.jar;jarlwjgl_test.jar;jarlwjgl_util.jar;jarjinput.jar;-Djava.library.path=native<Windowsasi que daría:java -cp .;res;jarlwjgl.jar;jarlwjgl_test.jar;jarlwjgl_util.jar;jarjinput.jar;-Djava.library.path=nativewindowsnos vamos a la ventana de el cmd y damos clic en pegarSi en tu caso fue Linux debes de poner Linux en lugar de windowsEl siguiente paso es irnos de nuevo a nuestro archivo readme y copiar este códigoTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 6
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Copiarlo y pegarlo en cmd (la pantalla negra)Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 7
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Enseguida daremos enter y saldrá un jueguitoTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 8
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Ahora es momento de enfocarnos a nuestro proyecto que crearemos en netbeans y openglTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 9
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 10
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Como vemos ya creamos nuestro proyectoTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 11
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Si no se visualizamos la carpeta del proyecto sigamos estos pasos:Lo siguiente es crear un paqueteMi paquete se llamo miopenglTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 12
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Lo siguiente un frame dentro del paqueteY damos finishTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 13
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1En este momento creamos nuestro framenota importante: Es necesario que en este momento pongas en setlayout a este panel que creamosTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 14
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1sigamos estos pasos:en la parte de abajo donde aparecen los frames da clic derechoTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 15
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Y asi se mostrarEnseguida arrastra un panel y arrástralo donde esta en frame.Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 16
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1A este panel es necesario ponerle nombre para ello vete a inspectorselecciona el panel da clic derecho.Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 17
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1En este momento ya tiene nombre nuestro panel que agregamosenseguida tenemos que agregarle un toggle botónTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 18
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Ponle el nombre animarY dale nombre al toggle buttonTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 19
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Ahora es momento de irnos a nuestro constructor del Frame ventana ydamos clic en sourse.Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 20
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1private Claseopengl pnLog1; /** Creates new form Ventana */ public Ventana() { initComponents(); try{Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 21
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1 pnLog1= new Claseopengl(); } catch (org.lwjgl.LWJGLException e){ System.out.println(e.getMessage()); } add (pnLog1 , java.awt.BorderLayout.CENTER); this.setSize(680,450); }enseguida nos vamos a la ventana de diseño:al botón damos un evento:pnLog1.start();Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 22
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Ahora que ya terminamos con el programa debemos de crear una clase y lometeremos dentro de nuestro paquete. Sigamos estos pasos:Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 23
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 24
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1El paso siguiente es abrir el archivo descargado llamado : OpenGLEs necesario cambiarle el nombre de la clase y el nombre del constructor y borrarleel main.Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 25
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1El código completo quedaría asi:package miopengl;/**** @author pedro*/import org.lwjgl.opengl.GL11;import org.lwjgl.util.glu.GLU;public class Claseopengl extends org.lwjgl.opengl.AWTGLCanvas implements Runnable { private Thread thread; public float rtri; // Angle For The Triangle ( NEW ) public float rquad; // Angle For The Quad ( NEW ) public float xTras; public float yTras; public float zTras; public float xRot; public float yRot; public float zRot; public Claseopengl() throws org.lwjgl.LWJGLException {Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 26
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1 super(); } private void ejes() { GL11.glBegin(GL11.GL_LINES); GL11.glColor3f(1.0f, 0.0f, 0.0f); GL11.glVertex3f(0.0f, 0.0f, 0.0f); GL11.glVertex3f(10.0f, 0.0f, 0.0f); GL11.glColor3f(0.0f, 1.0f, 0.0f); GL11.glVertex3f(0.0f, 0.0f, 0.0f); GL11.glVertex3f(0.0f, 10.0f, 0.0f); GL11.glColor3f(0.0f, 0.0f, 1.0f); GL11.glVertex3f(0.0f, 0.0f, 0.0f); GL11.glVertex3f(0.0f, 0.0f, 10.0f); GL11.glEnd(); } private void triangulo() { GL11.glPushMatrix(); //GL11.glLoadIdentity(); GL11.glTranslatef(-1.5f,0.0f,-6.0f); // Move Left 1.5 Units And Into The Screen 6.0 GL11.glRotatef(rtri,0.0f,1.0f,0.0f); // Rotate The Triangle On The Y axis ( NEW ) GL11.glBegin(GL11.GL_TRIANGLES); // Drawing Using Triangles GL11.glColor3f(1.0f,0.0f,0.0f); // Red GL11.glVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Front) GL11.glColor3f(0.0f,1.0f,0.0f); // Green GL11.glVertex3f(-1.0f,-1.0f, 1.0f); // Left Of Triangle (Front)Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 27
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1 GL11.glColor3f(0.0f,0.0f,1.0f); // Blue GL11.glVertex3f( 1.0f,-1.0f, 1.0f); // Right Of Triangle (Front) GL11.glColor3f(1.0f,0.0f,0.0f); // Red GL11.glVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Right) GL11.glColor3f(0.0f,0.0f,1.0f); // Blue GL11.glVertex3f( 1.0f,-1.0f, 1.0f); // Left Of Triangle (Right) GL11.glColor3f(0.0f,1.0f,0.0f); // Green GL11.glVertex3f( 1.0f,-1.0f, -1.0f); // Right Of Triangle (Right) GL11.glColor3f(1.0f,0.0f,0.0f); // Red GL11.glVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Back) GL11.glColor3f(0.0f,1.0f,0.0f); // Green GL11.glVertex3f( 1.0f,-1.0f, -1.0f); // Left Of Triangle (Back) GL11.glColor3f(0.0f,0.0f,1.0f); // Blue GL11.glVertex3f(-1.0f,-1.0f, -1.0f); // Right Of Triangle (Back) GL11.glColor3f(1.0f,0.0f,0.0f); // Red GL11.glVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Left) GL11.glColor3f(0.0f,0.0f,1.0f); // Blue GL11.glVertex3f(-1.0f,-1.0f,-1.0f); // Left Of Triangle (Left) GL11.glColor3f(0.0f,1.0f,0.0f); // Green GL11.glVertex3f(-1.0f,-1.0f, 1.0f); // Right Of Triangle (Left) GL11.glEnd(); // Finished Drawing The Triangle GL11.glPopMatrix(); rtri+=0.5f; // Increase The Rotation Variable For The Triangle ( NEW ) } private void cubo() { GL11.glPushMatrix(); GL11.glTranslatef(1.5f,0.0f,-7.0f); // Move Right 1.5 Units And Into The Screen 6.0 GL11.glRotatef(rquad,1.0f,1.0f,1.0f); // Rotate The Quad On The X axis ( NEW )Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 28
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1 GL11.glColor3f(0.5f,0.5f,1.0f); // Set The Color To Blue One Time Only GL11.glBegin(GL11.GL_QUADS); // Draw A Quad GL11.glColor3f(0.0f,1.0f,0.0f); // Set The Color To Green GL11.glVertex3f( 1.0f, 1.0f,-1.0f); // Top Right Of The Quad (Top) GL11.glVertex3f(-1.0f, 1.0f,-1.0f); // Top Left Of The Quad (Top) GL11.glVertex3f(-1.0f, 1.0f, 1.0f); // Bottom Left Of The Quad (Top) GL11.glVertex3f( 1.0f, 1.0f, 1.0f); // Bottom Right Of The Quad (Top) GL11.glColor3f(1.0f,0.5f,0.0f); // Set The Color To Orange GL11.glVertex3f( 1.0f,-1.0f, 1.0f); // Top Right Of The Quad (Bottom) GL11.glVertex3f(-1.0f,-1.0f, 1.0f); // Top Left Of The Quad (Bottom) GL11.glVertex3f(-1.0f,-1.0f,-1.0f); // Bottom Left Of The Quad (Bottom) GL11.glVertex3f( 1.0f,-1.0f,-1.0f); // Bottom Right Of The Quad (Bottom) GL11.glColor3f(1.0f,0.0f,0.0f); // Set The Color To Red GL11.glVertex3f( 1.0f, 1.0f, 1.0f); // Top Right Of The Quad (Front) GL11.glVertex3f(-1.0f, 1.0f, 1.0f); // Top Left Of The Quad (Front) GL11.glVertex3f(-1.0f,-1.0f, 1.0f); // Bottom Left Of The Quad (Front) GL11.glVertex3f( 1.0f,-1.0f, 1.0f); // Bottom Right Of The Quad (Front) GL11.glColor3f(1.0f,1.0f,0.0f); // Set The Color To Yellow GL11.glVertex3f( 1.0f,-1.0f,-1.0f); // Bottom Left Of The Quad (Back) GL11.glVertex3f(-1.0f,-1.0f,-1.0f); // Bottom Right Of The Quad (Back) GL11.glVertex3f(-1.0f, 1.0f,-1.0f); // Top Right Of The Quad (Back) GL11.glVertex3f( 1.0f, 1.0f,-1.0f); // Top Left Of The Quad (Back) GL11.glColor3f(0.0f,0.0f,1.0f); // Set The Color To Blue GL11.glVertex3f(-1.0f, 1.0f, 1.0f); // Top Right Of The Quad (Left) GL11.glVertex3f(-1.0f, 1.0f,-1.0f); // Top Left Of The Quad (Left) GL11.glVertex3f(-1.0f,-1.0f,-1.0f); // Bottom Left Of The Quad (Left) GL11.glVertex3f(-1.0f,-1.0f, 1.0f); // Bottom Right Of The Quad (Left) GL11.glColor3f(1.0f,0.0f,1.0f); // Set The Color To Violet GL11.glVertex3f( 1.0f, 1.0f,-1.0f); // Top Right Of The Quad (Right)Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 29
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1 GL11.glVertex3f( 1.0f, 1.0f, 1.0f); // Top Left Of The Quad (Right) GL11.glVertex3f( 1.0f,-1.0f, 1.0f); // Bottom Left Of The Quad (Right) GL11.glVertex3f( 1.0f,-1.0f,-1.0f); // Bottom Right Of The Quad (Right) GL11.glEnd(); // Done Drawing The Quad GL11.glPopMatrix(); rquad-=0.5f; // Decrease The Rotation Variable For The Quad ( NEW ) } /** * Override this to do initialising of the context. * It will be called once from paint(), immediately after * the context is created and made current. */ @Override protected void initGL() { GL11.glEnable(GL11.GL_TEXTURE_2D); // Enable Texture Mapping GL11.glShadeModel(GL11.GL_SMOOTH); // Enable Smooth Shading GL11.glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // Black Background GL11.glClearDepth(1.0); // Depth Buffer Setup GL11.glEnable(GL11.GL_DEPTH_TEST); // Enables Depth Testing GL11.glDepthFunc(GL11.GL_LEQUAL); // The Type Of Depth Testing To Do GL11.glMatrixMode(GL11.GL_PROJECTION); // Select The Projection Matrix GL11.glLoadIdentity(); // Reset The Projection Matrix // Calculate The Aspect Ratio Of The Window GLU.gluPerspective( 45.0f, (float) this.getWidth() / (float) this.getHeight(),Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 30
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1 0.1f, 100.0f); GL11.glMatrixMode(GL11.GL_MODELVIEW); // Select The Modelview Matrix // Really Nice Perspective Calculations GL11.glHint(GL11.GL_PERSPECTIVE_CORRECTION_HINT, GL11.GL_NICEST); } /** Override this to do painting */ @Override protected void paintGL() { GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT); // Clear The ScreenAnd The Depth Buffer GL11.glLoadIdentity(); // Reset The Current Modelview Matrix GL11.glTranslatef(xTras, yTras, zTras); GL11.glRotatef(xRot, 1.0f, 0.0f, 0.0f); GL11.glRotatef(yRot, 0.0f, 1.0f, 0.0f); GL11.glRotatef(zRot, 0.0f, 0.0f, 1.0f); ejes(); triangulo(); cubo(); try { this.swapBuffers(); } catch (org.lwjgl.LWJGLException e){Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 31
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1 e.printStackTrace(); } } public void start() { thread = new Thread(this); thread.setPriority(Thread.MIN_PRIORITY); thread.start(); } public void stop() { if (thread != null) { thread.interrupt(); } thread = null; } public void run() { Thread me = Thread.currentThread(); while (thread == me) { repaint(); } thread = null; }}Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 32
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Damos clic en new libraryTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 33
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Y damos clic en ok en mi caso como ya lo tengo agregado por eso mesalio de color rojo el mensaje.Lo que tenemos que hacer en seguida es agregar los jar a nuestralibrería recién creada llamada lwjgl:Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 34
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Damos clic en add jarDamos doble clic a la carpetaTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 35
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Damos doble clic en jarSeleccionamos los 4 y damos en agreagrarTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 36
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Y asi apareceránNos vamos en sourse y agregaremos otra libreríaTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 37
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Nos vamos a nuestro documentos y damos clic en agregarEn javadoc hacemos lo mismoTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 38
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Y así agregamos las librerías.Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 39
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Damos clic derecho a nuestro proyecto elegimos en el menú contextualla opción propiedadesTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 40
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Damos clic en agregar librerías y lo agregamos:Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 41
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1En run agregamos también esta misma librería:Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 42
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Copiamos este código del archivo readme y lo pegamosTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 43
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1-Djava.library.path=Enseguida tenemos que pegar la extensión donde se encuentran los .ddlAccesamos a nuestros documentos y damos clic a la carpetaTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 44
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Damos clic en nativeDamos clic en la carpeta WindowsTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 45
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Seleccionamos la dirección que se encuantra en la parte de arribaTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 46
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Damos cli en ok y nuestro programa estará funcionando al 100 %-Djava.library.path=C:UserspedroDocumentslwjglnativewindowsTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 47
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Shift + F6Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 48
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1Si damos clic en animar las imagine s se moverán.Código de la ventana:/** To change this template, choose Tools | Templates* and open the template in the editor.*//** Ventana.java** Created on 8/06/2011, 12:51:12 PM*/package miopengl;Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 49
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1/**** @author pedro*/public class Ventana extends javax.swing.JFrame {private Claseopengl pnLog1; /** Creates new form Ventana */ public Ventana() { initComponents(); try{ pnLog1= new Claseopengl(); } catch (org.lwjgl.LWJGLException e){ System.out.println(e.getMessage()); } add (pnLog1 , java.awt.BorderLayout.CENTER); this.setSize(680,450); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method isTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 50
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1 * always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { pnHerramientas = new javax.swing.JPanel(); btnAnimar = new javax.swing.JToggleButton(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); btnAnimar.setText("Animar"); btnAnimar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnAnimarActionPerformed(evt); } }); javax.swing.GroupLayout pnHerramientasLayout = newjavax.swing.GroupLayout(pnHerramientas); pnHerramientas.setLayout(pnHerramientasLayout); pnHerramientasLayout.setHorizontalGroup( pnHerramientasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,pnHerramientasLayout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(btnAnimar)) );Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 51
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1 pnHerramientasLayout.setVerticalGroup( pnHerramientasLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnHerramientasLayout.createSequentialGroup() .addGap(52, 52, 52) .addComponent(btnAnimar) .addContainerGap(225, Short.MAX_VALUE)) ); getContentPane().add(pnHerramientas, java.awt.BorderLayout.LINE_START); pack(); }// </editor-fold> private void btnAnimarActionPerformed(java.awt.event.ActionEvent evt) { pnLog1.start(); } /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Ventana().setVisible(true); } }); }Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 52
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1 // Variables declaration - do not modify private javax.swing.JToggleButton btnAnimar; private javax.swing.JPanel pnHerramientas; // End of variables declaration}Código de la clasepackage miopengl;/**** @author pedro*/import org.lwjgl.opengl.GL11;import org.lwjgl.util.glu.GLU;public class Claseopengl extends org.lwjgl.opengl.AWTGLCanvas implements Runnable { private Thread thread; public float rtri; // Angle For The Triangle ( NEW ) public float rquad; // Angle For The Quad ( NEW )Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 53
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1 public float xTras; public float yTras; public float zTras; public float xRot; public float yRot; public float zRot; public Claseopengl() throws org.lwjgl.LWJGLException { super(); } private void ejes() { GL11.glBegin(GL11.GL_LINES); GL11.glColor3f(1.0f, 0.0f, 0.0f); GL11.glVertex3f(0.0f, 0.0f, 0.0f); GL11.glVertex3f(10.0f, 0.0f, 0.0f); GL11.glColor3f(0.0f, 1.0f, 0.0f); GL11.glVertex3f(0.0f, 0.0f, 0.0f); GL11.glVertex3f(0.0f, 10.0f, 0.0f); GL11.glColor3f(0.0f, 0.0f, 1.0f); GL11.glVertex3f(0.0f, 0.0f, 0.0f); GL11.glVertex3f(0.0f, 0.0f, 10.0f); GL11.glEnd();Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 54
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1 } private void triangulo() { GL11.glPushMatrix(); //GL11.glLoadIdentity(); GL11.glTranslatef(-1.5f,0.0f,-6.0f); // Move Left 1.5 Units And Into The Screen 6.0 GL11.glRotatef(rtri,0.0f,1.0f,0.0f); // Rotate The Triangle On The Y axis ( NEW ) GL11.glBegin(GL11.GL_TRIANGLES); // Drawing Using Triangles GL11.glColor3f(1.0f,0.0f,0.0f); // Red GL11.glVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Front) GL11.glColor3f(0.0f,1.0f,0.0f); // Green GL11.glVertex3f(-1.0f,-1.0f, 1.0f); // Left Of Triangle (Front) GL11.glColor3f(0.0f,0.0f,1.0f); // Blue GL11.glVertex3f( 1.0f,-1.0f, 1.0f); // Right Of Triangle (Front) GL11.glColor3f(1.0f,0.0f,0.0f); // Red GL11.glVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Right) GL11.glColor3f(0.0f,0.0f,1.0f); // Blue GL11.glVertex3f( 1.0f,-1.0f, 1.0f); // Left Of Triangle (Right) GL11.glColor3f(0.0f,1.0f,0.0f); // Green GL11.glVertex3f( 1.0f,-1.0f, -1.0f); // Right Of Triangle (Right) GL11.glColor3f(1.0f,0.0f,0.0f); // Red GL11.glVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Back) GL11.glColor3f(0.0f,1.0f,0.0f); // Green GL11.glVertex3f( 1.0f,-1.0f, -1.0f); // Left Of Triangle (Back) GL11.glColor3f(0.0f,0.0f,1.0f); // Blue GL11.glVertex3f(-1.0f,-1.0f, -1.0f); // Right Of Triangle (Back) GL11.glColor3f(1.0f,0.0f,0.0f); // RedTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 55
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1 GL11.glVertex3f( 0.0f, 1.0f, 0.0f); // Top Of Triangle (Left) GL11.glColor3f(0.0f,0.0f,1.0f); // Blue GL11.glVertex3f(-1.0f,-1.0f,-1.0f); // Left Of Triangle (Left) GL11.glColor3f(0.0f,1.0f,0.0f); // Green GL11.glVertex3f(-1.0f,-1.0f, 1.0f); // Right Of Triangle (Left) GL11.glEnd(); // Finished Drawing The Triangle GL11.glPopMatrix(); rtri+=0.5f; // Increase The Rotation Variable For The Triangle ( NEW ) } private void cubo() { GL11.glPushMatrix(); GL11.glTranslatef(1.5f,0.0f,-7.0f); // Move Right 1.5 Units And Into The Screen 6.0 GL11.glRotatef(rquad,1.0f,1.0f,1.0f); // Rotate The Quad On The X axis ( NEW ) GL11.glColor3f(0.5f,0.5f,1.0f); // Set The Color To Blue One Time Only GL11.glBegin(GL11.GL_QUADS); // Draw A Quad GL11.glColor3f(0.0f,1.0f,0.0f); // Set The Color To Green GL11.glVertex3f( 1.0f, 1.0f,-1.0f); // Top Right Of The Quad (Top) GL11.glVertex3f(-1.0f, 1.0f,-1.0f); // Top Left Of The Quad (Top) GL11.glVertex3f(-1.0f, 1.0f, 1.0f); // Bottom Left Of The Quad (Top) GL11.glVertex3f( 1.0f, 1.0f, 1.0f); // Bottom Right Of The Quad (Top) GL11.glColor3f(1.0f,0.5f,0.0f); // Set The Color To Orange GL11.glVertex3f( 1.0f,-1.0f, 1.0f); // Top Right Of The Quad (Bottom) GL11.glVertex3f(-1.0f,-1.0f, 1.0f); // Top Left Of The Quad (Bottom) GL11.glVertex3f(-1.0f,-1.0f,-1.0f); // Bottom Left Of The Quad (Bottom) GL11.glVertex3f( 1.0f,-1.0f,-1.0f); // Bottom Right Of The Quad (Bottom) GL11.glColor3f(1.0f,0.0f,0.0f); // Set The Color To RedTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 56
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1 GL11.glVertex3f( 1.0f, 1.0f, 1.0f); // Top Right Of The Quad (Front) GL11.glVertex3f(-1.0f, 1.0f, 1.0f); // Top Left Of The Quad (Front) GL11.glVertex3f(-1.0f,-1.0f, 1.0f); // Bottom Left Of The Quad (Front) GL11.glVertex3f( 1.0f,-1.0f, 1.0f); // Bottom Right Of The Quad (Front) GL11.glColor3f(1.0f,1.0f,0.0f); // Set The Color To Yellow GL11.glVertex3f( 1.0f,-1.0f,-1.0f); // Bottom Left Of The Quad (Back) GL11.glVertex3f(-1.0f,-1.0f,-1.0f); // Bottom Right Of The Quad (Back) GL11.glVertex3f(-1.0f, 1.0f,-1.0f); // Top Right Of The Quad (Back) GL11.glVertex3f( 1.0f, 1.0f,-1.0f); // Top Left Of The Quad (Back) GL11.glColor3f(0.0f,0.0f,1.0f); // Set The Color To Blue GL11.glVertex3f(-1.0f, 1.0f, 1.0f); // Top Right Of The Quad (Left) GL11.glVertex3f(-1.0f, 1.0f,-1.0f); // Top Left Of The Quad (Left) GL11.glVertex3f(-1.0f,-1.0f,-1.0f); // Bottom Left Of The Quad (Left) GL11.glVertex3f(-1.0f,-1.0f, 1.0f); // Bottom Right Of The Quad (Left) GL11.glColor3f(1.0f,0.0f,1.0f); // Set The Color To Violet GL11.glVertex3f( 1.0f, 1.0f,-1.0f); // Top Right Of The Quad (Right) GL11.glVertex3f( 1.0f, 1.0f, 1.0f); // Top Left Of The Quad (Right) GL11.glVertex3f( 1.0f,-1.0f, 1.0f); // Bottom Left Of The Quad (Right) GL11.glVertex3f( 1.0f,-1.0f,-1.0f); // Bottom Right Of The Quad (Right) GL11.glEnd(); // Done Drawing The Quad GL11.glPopMatrix(); rquad-=0.5f; // Decrease The Rotation Variable For The Quad ( NEW ) } /** * Override this to do initialising of the context. * It will be called once from paint(), immediately afterTutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 57
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1 * the context is created and made current. */ @Override protected void initGL() { GL11.glEnable(GL11.GL_TEXTURE_2D); // Enable Texture Mapping GL11.glShadeModel(GL11.GL_SMOOTH); // Enable Smooth Shading GL11.glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // Black Background GL11.glClearDepth(1.0); // Depth Buffer Setup GL11.glEnable(GL11.GL_DEPTH_TEST); // Enables Depth Testing GL11.glDepthFunc(GL11.GL_LEQUAL); // The Type Of Depth Testing To Do GL11.glMatrixMode(GL11.GL_PROJECTION); // Select The Projection Matrix GL11.glLoadIdentity(); // Reset The Projection Matrix // Calculate The Aspect Ratio Of The Window GLU.gluPerspective( 45.0f, (float) this.getWidth() / (float) this.getHeight(), 0.1f, 100.0f); GL11.glMatrixMode(GL11.GL_MODELVIEW); // Select The Modelview Matrix // Really Nice Perspective Calculations GL11.glHint(GL11.GL_PERSPECTIVE_CORRECTION_HINT, GL11.GL_NICEST); } /** Override this to do painting */Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 58
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1 @Override protected void paintGL() { GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT); // ClearThe Screen And The Depth Buffer GL11.glLoadIdentity(); // Reset The Current Modelview Matrix GL11.glTranslatef(xTras, yTras, zTras); GL11.glRotatef(xRot, 1.0f, 0.0f, 0.0f); GL11.glRotatef(yRot, 0.0f, 1.0f, 0.0f); GL11.glRotatef(zRot, 0.0f, 0.0f, 1.0f); ejes(); triangulo(); cubo(); try { this.swapBuffers(); } catch (org.lwjgl.LWJGLException e){ e.printStackTrace(); } } public void start() { thread = new Thread(this); thread.setPriority(Thread.MIN_PRIORITY); thread.start();Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 59
  • Tutorial: como ejecutar un proyecto opengl y netbeans 6.9.1 } public void stop() { if (thread != null) { thread.interrupt(); } thread = null; } public void run() { Thread me = Thread.currentThread(); while (thread == me) { repaint(); } thread = null; }}Tutorial: Pedro López Salazar Instituto tecnológico Superior de Zapopan Página 60