1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
| import java.awt.event.MouseListener; import java.awt.event.MouseEvent;
import javax.media.opengl.GL2; import javax.media.opengl.GLAutoDrawable; import javax.media.opengl.GLEventListener; import javax.media.opengl.awt.GLCanvas; import javax.media.opengl.glu.GLU;
public class orbitalExplorer extends GLCanvas implements GLEventListener, MouseListener{ private GLU glu = new GLU(); private GL2 gl; private Camera3D camera = new Camera3D(-1.0f,0f,-16.0f, 0f,0f,0f, 2f, 0f,0f,0f); private float degreeToRadian = 0.0174532925f;
public void mouseClicked(MouseEvent mouse) { camera.z = camera.z - 10.0f; System.out.println("camera-z:"+camera.z); } public void mousePressed(MouseEvent mouse) { }
public void mouseReleased(MouseEvent mouse) { } public void mouseEntered(MouseEvent mouse) {} public void mouseExited(MouseEvent mouse) {} public void mouseDragged(MouseEvent mouse) {} public void mouseMoved(MouseEvent mouse) {} public void mouseWheelMoved(MouseEvent mouse) {}
public void reshape( GLAutoDrawable drawable, int x, int y, int width, int height ) { gl = drawable.getGL().getGL2(); if (height <= 0) {height = 1;} final float h = (float) width / (float) height; gl.glViewport(0, 0, width, height); gl.glMatrixMode(GL2.GL_PROJECTION); gl.glLoadIdentity(); glu.gluPerspective(45.0f, h, 1.0f, 100.0f); gl.glMatrixMode(GL2.GL_MODELVIEW); gl.glLoadIdentity(); }
public void init( GLAutoDrawable drawable ) { gl = drawable.getGL().getGL2(); gl.glClearColor(1.0f, 1.0f, 1.0f, 1.0f); gl.glEnable(GL2.GL_DEPTH_TEST); gl.glClearDepth(1.0f); gl.glDepthFunc(GL2.GL_LEQUAL); gl.glHint(GL2.GL_PERSPECTIVE_CORRECTION_HINT, GL2.GL_NICEST); } public void dispose( GLAutoDrawable drawable ) {} public void display( GLAutoDrawable drawable ) { gl = drawable.getGL().getGL2(); gl.glClear(GL2.GL_COLOR_BUFFER_BIT | GL2.GL_DEPTH_BUFFER_BIT); gl.glLoadIdentity(); glu.gluLookAt(camera.x, camera.y, camera.z, camera.focusx, camera.focusy, camera.focusz, 0, 1, 0); gl.glPushMatrix(); gl.glBegin(GL2.GL_TRIANGLES); gl.glColor3f(0.0f, 0.0f, 0.0f); gl.glVertex3f(0.0f, 1.0f, 0.0f); gl.glVertex3f(-1.0f, -1.0f, 1.0f); gl.glVertex3f(1.0f, -1.0f, 1.0f); gl.glVertex3f(0.0f, 1.0f, 0.0f); gl.glVertex3f(1.0f, -1.0f, 1.0f); gl.glVertex3f(1.0f, -1.0f, -1.0f); gl.glVertex3f(0.0f, 1.0f, 0.0f); gl.glVertex3f(1.0f, -1.0f, -1.0f); gl.glVertex3f(-1.0f, -1.0f, -1.0f); gl.glVertex3f(0.0f, 1.0f, 0.0f); gl.glVertex3f(-1.0f, -1.0f, -1.0f); gl.glVertex3f(-1.0f, -1.0f, 1.0f); gl.glEnd(); gl.glPopMatrix(); gl.glFlush(); }
} |