Anda di halaman 1dari 6

A.

Membuat Bangun Persegi Panjang


1. Buat class java baru dengan cara klik kanan paket tutoriallwjgl > New > Java
Main Class

2. beri nama class PersegiPanjang> Finish

3. Masukkan script bold berikut kedalam class PersegiPanjang


package tutoriallwjgl;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.lwjgl.LWJGLException;
import org.lwjgl.input.Keyboard;
import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import static org.lwjgl.opengl.GL11.*;
import static org.lwjgl.util.glu.GLU.gluOrtho2D;

public class PersegiPanjang {


public int DISPLAY_WIDTH = 600;
public int DISPLAY_HEIGHT = 800;

public void draw(){


}
public void render(){
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
glColor3d(1,0,0);
buatKotak();
glFlush();
}

public void buatKotak(){


//membuat kotak
glBegin(GL_POLYGON);
glVertex2f(250,120); //titik kiri bawah
glVertex2f(450,120); //titik kanan bawah
glVertex2f(450,200); //titik kanan atas
glVertex2f(250,200); //titik kiri atas
glEnd();
}

public void create()throws LWJGLException{


Display.setDisplayMode(new
DisplayMode(DISPLAY_HEIGHT,DISPLAY_WIDTH));
Display.setFullscreen(false);
Display.setTitle("Menggambar Persegi Panjang");
Display.create();
initGL();
resizeGL();
}

void initGL(){
glClearColor(0.0f,1.0f,1.0f,1.0f);
glDisable(GL_DEPTH_TEST);
glDisable(GL_LIGHTING);
}

public void resizeGL(){


glViewport(0,0,DISPLAY_HEIGHT,DISPLAY_WIDTH);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0f,DISPLAY_HEIGHT,0.0f,DISPLAY_WIDTH);
glPushMatrix();
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glPushMatrix();
}

public void run(){


while(!Display.isCloseRequested() &&
!Keyboard.isKeyDown(Keyboard.KEY_ESCAPE)){
if(Display.isVisible()){
update();
render();
}else{
if(Display.isDirty()){
render();
}try {
Thread.sleep(100);
} catch (InterruptedException ex) {
}
}
Display.update();
Display.sync(60);
}
}

private void update(){


}

private void destroy(){


Mouse.destroy();
Keyboard.destroy();
Display.destroy();
}

public static void main(String[] args) {


PersegiPanjang b1 = new PersegiPanjang();
try {
b1.create();
b1.run();
} catch (LWJGLException ex) {

Logger.getLogger(PersegiPanjang.class.getName()).log(Level.SEVERE,
null, ex);
}
}

4. Jalankan program tersebut dengan cara klik kanan class PersegiPanjang > Run
File

5. Maka hasilnya seperti dibawah ini

B. Membuat Bangun Segitiga


1. Buat class java baru dengan cara klik kanan paket tutoriallwjgl > New > Java
Main Class
2. beri nama class Segitiga> Finish

3. Masukkan script bold berikut kedalam class Segitiga


package latihan;
import org.lwjgl.LWJGLException;
import org.lwjgl.Sys;
import org.lwjgl.input.Keyboard;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import static org.lwjgl.opengl.GL11.*;
import static org.lwjgl.util.glu.GLU.*;

public class Segitiga {

String windowTitle = "Menggambar Segitiga";


public boolean closeRequested = false;

public void run() {


createWindow();
initializeGL();

// main loop
while (!closeRequested) {
pollInput();
updateLogic();
renderGL();
Display.update();
}
cleanup();
}

private void initializeGL() {


int width = Display.getDisplayMode().getWidth();
int height = Display.getDisplayMode().getHeight();

glViewport(0, 0, width, height); // Reset The Current Viewport


glMatrixMode(GL_PROJECTION); // Select The Projection Matrix
glLoadIdentity(); // Reset The Projection Matrix
gluPerspective(45.0f, ((float) width / (float) height), 0.1f, 100.0f);//
Calculate The Aspect Ratio Of The Window
glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix
glLoadIdentity(); // Reset The Modelview Matrix

glShadeModel(GL_SMOOTH); // Enables Smooth Shading


//GL11.glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // Black Background
glClearColor(0.20392156862f, 0.59607843137f, 0.85882352941f, 0.0f);
glClearDepth(1.0f); // Depth Buffer Setup
glEnable(GL_DEPTH_TEST); // Enables Depth Testing
glDepthFunc(GL_LEQUAL); // The Type Of Depth Test To Do
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // Really
Nice Perspective Calculations
}

private void updateLogic() {


//
}

private void renderGL() {


glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear The
Screen And The Depth Buffer
glLoadIdentity(); // Reset The View

glTranslatef(-1.5f, 0.0f, -6.0f); // Move Left 1.5 Units And


Into The Screen 6.0

glBegin(GL_TRIANGLES); // Drawing Using Triangles


glVertex3f(0.0f, 1.0f, 0.0f); // Top
glVertex3f(-1.0f, -1.0f, 0.0f); // Bottom Left
glVertex3f(1.0f, -1.0f, 0.0f); // Bottom Right
glEnd(); // Finished Drawing The Triangle
}

public void pollInput() {

// scroll through key events


while (Keyboard.next()) {
if (Keyboard.getEventKeyState()) {
if (Keyboard.getEventKey() == Keyboard.KEY_ESCAPE)
closeRequested = true;
}
}
if (Display.isCloseRequested()) {
closeRequested = true;
}
}

private void createWindow() {


try {
Display.setDisplayMode(new DisplayMode(640, 480));
Display.setVSyncEnabled(true);
Display.setTitle(windowTitle);
Display.create();
} catch (LWJGLException e) {
Sys.alert("Error", "Initialization failed!\n\n" +
e.getMessage());
System.exit(0);
}
}

private void cleanup() {


Display.destroy();
}

public static void main(String[] args) {


segitiga tutorial = new segitiga();
tutorial.run();
}

4. Jalankan program tersebut dengan cara klik kanan class Segitiga > Run File

5. Maka hasilnya seperti dibawah ini

Anda mungkin juga menyukai