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
| public static void look(int FOV,float aspectratio, float atx, float aty, float atz,float yaw, float pitch,float roll) { yaw+=180; while(pitch>360||pitch<0) { if(pitch>360) { pitch-=360; } if(pitch<0) { pitch+=360; } } while(yaw>360||yaw<0) { if(yaw>360) { yaw-=360; } if(yaw<0) { yaw+=360; } } while(roll>360||roll<0) { if(roll>360) { roll-=360; } if(roll<0) { roll+=360; } } double yawrad = (Math.PI*yaw)/180; double pitchrad = (Math.PI*pitch)/180; float lookz=(float) (atz+(30*Math.cos(yawrad))); float lookx=(float) (atx+(30*Math.sin(yawrad))); float looky=(float) (aty+(30*Math.tan(pitchrad))); GL11.glMatrixMode(GL11.GL_PROJECTION); GL11.glLoadIdentity(); GLU.gluPerspective(FOV, aspectratio, 1f, 9000f); GL11.glMatrixMode(GL11.GL_MODELVIEW); GL11.glLoadIdentity(); GL11.glRotatef(-roll, 0, 0, 1); GLU.gluLookAt(atx, aty, atz, lookx, looky, lookz, 0, 1, 0); } } |