Transformasi Proyeksi Uraian Materi

108 Kegiatan Praktikum 7.1 Keluaran Program Perancangan class diagram Block.java import java.util.Random; import static org.lwjgl.opengl.GL11.; import static org.lwjgl.util.glu.GLU.; import java.io.IOException; import java.util.logging.FileHandler; import java.util.logging.Level; import java.util.logging.Logger; import org.lwjgl.LWJGLException; import org.lwjgl.input.Keyboard; 109 import org.lwjgl.input.Mouse; import org.lwjgl.opengl.Display; import org.lwjgl.opengl.DisplayMode; public class Block { public float x, y, z, width, height, depth, shade; public Random rand; public Blockfloat xx, float yy, float zz, float ww, float hh, float dd { x = xx; y = yy; z = zz; width = ww; height = hh; depth = dd; rand = new Random; shade = rand.nextFloat + 0.2f; } public void tick { } public void render { glBeginGL_QUADS; glColor3f0, shade, 1; Front glTexCoord2f0, 0; glVertex3fx, y, z; glTexCoord2f1, 0; glVertex3fx + width, y, z; glTexCoord2f1, 1; glVertex3fx + width, y + height, z; glTexCoord2f0, 1; glVertex3fx, y + height, z; Back glVertex3fx, y, z + depth; glVertex3fx + width, y, z + depth; glVertex3fx + width, y + height, z + depth; glVertex3fx, y + height, z + depth; Left glVertex3fx, y, z; glVertex3fx, y, z + depth; glVertex3fx, y + height, z + depth; glVertex3fx, y + height, z; Right glVertex3fx + width, y, z; glVertex3fx + width, y, z + depth; glVertex3fx + width, y + height, z + depth; glVertex3fx + width, y + height, z; Top glVertex3fx, y, z; glVertex3fx + width, y, z; glVertex3fx + width, y, z + depth; glVertex3fx, y, z + depth; Bottom glVertex3fx, y + height, z; 110 glVertex3fx + width, y + height, z; glVertex3fx + width, y + height, z + depth; glVertex3fx, y + height, z + depth; glEnd; } } UjiCamera.java import java.util.Random; import static org.lwjgl.opengl.GL11.; import static org.lwjgl.util.glu.GLU.; import java.io.IOException; import java.util.ArrayList; import java.util.logging.FileHandler; import java.util.logging.Level; import java.util.logging.Logger; import org.lwjgl.LWJGLException; import org.lwjgl.Sys; import org.lwjgl.input.Keyboard; import org.lwjgl.input.Mouse; import org.lwjgl.opengl.Display; import org.lwjgl.opengl.DisplayMode; public class UjiCamera { public static float camera_x, camera_y, camera_z, camera_rot; public static ArrayListBlock blocks = new ArrayListBlock; public UjiCamera { try { Display.setDisplayModenew DisplayMode800, 600; Display.setTitleTransformai Proyeksi dengan Kamera; Display.create; } catch LWJGLException e { e.printStackTrace; } glMatrixModeGL_PROJECTION; glLoadIdentity; gluPerspectivefloat 45, 800f 600f, 0.1f, 1000.0f; glMatrixModeGL_MODELVIEW; glLoadIdentity; glShadeModelGL_SMOOTH; glEnableGL_DEPTH_TEST; glEnableGL_TEXTURE_2D; glDepthFuncGL_LEQUAL; glHintGL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST; generateWorld; glTranslatef0, 15, 0; float dt, time, lastTime = 0; Mouse.setGrabbedtrue; while Display.isCloseRequested Keyboard.isKeyDownKeyboard.KEY_ESCAPE { time = Sys.getTime; dt = time - lastTime 1000.0f;