Membuat Garis Dengan OpenGL With Java

Pada kesempatan kali ini saya akan menjelaskan cara membuat Garis mengunakan OpenGL with Java, pada java saya mengunakan NetBeans Versi 8.0.1 dan OpenGL. OpenGL adalah kumpulan standard API (Application Programming Interface) yang menghubungkan software dengan hardware grafis untuk menampilkan gambar 2D dan 3D. Intinya OpenGL itu adalah kumpulan library untuk mengakses hardware (GL= graphical library). Sedangkan , Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Bahasa ini awalnya dibuat oleh James Gosling saat masih bergabung di Sun Microsystems saat ini merupakan bagian dari Oracle dan dirilis tahun 1995. Pada Pembuatan Garis ini terdapat 4 Class yaitu : Menu , Diagonal , Vertikal , Horizontal. dan yang menjadi main atau class yang dijalankan pertama kali adalah Menu.

Menu

Berikut Adalah Source Code Menu : 








   //Memanggil Library Untuk Java , Java JOption (Sebagai Form Input) , dan Library OpenGL
   import java.util.*;

   import javax.swing.JOptionPane;
import org.lwjgl.LWJGLException;


public class LineMenu {
//Pendeklarasian Variabel Opt , Penggunaan JOptionPane sebagai Form Input untuk memanggil Class yang telah dibuat
public static void main(String[] args) throws LWJGLException{
int opt;
String op = JOptionPane.showInputDialog("*Menu Garis* \n1. Garis Vertikal \n2. Garis    Horizontal \n3. Garis Diagonal \n Masukan Pilihan (1 - 3)");
    opt = Integer.parseInt(op);
    switch(opt){
        case 1: // Case 1 memanggil Class Vertikal dengan sub pemanggilnya yaitu grs_v agar dimunculkan dilayar setelah di tekan angka 1 lalu Enter.
            Vertikal grs_v = new Vertikal();
            grs_v.layar();
            break;
        case 2: // Case 2 memanggil Class Horizontal dengan sub pemanggilnya yaitu grs_h agar dimunculkan dilayar setelah di tekan angka 2 lalu Enter.
            Horizontal grs_h = new Horizontal();
            grs_h.layar();
            break;
        case 3: // Case 3 memanggil Class Diagonal dengan sub pemanggilnya yaitu grs_d agar dimunculkan dilayar setelah di tekan angka 1 lalu Enter.
            Diagonal grs_d = new Diagonal();
            grs_d.layar();
            break;
        default:
            JOptionPane.showMessageDialog(null, "Menu Tidak Terdaftar!");
        }
    }

Berikut Adalah Tampilan Jika Class Menu Di Run .




Logika :

Jika Angka 1 diinput lalu ditekan Enter , maka Class Vertikal akan terpanggil , lalu akan memunculkan Inputan Baru dengan JOptionPane. Begitu pula dengan Option Menu yang lainya . akan memanggil Class sesuai Nomor yang di input. Jika Tidak Sesuai Akan muncul "Message Menu Tidak Terdaftar".

Garis Vertikal

Lalu Setelah Itu Lanjut membuat Class baru Dengan Nama Vertikal. * Jika tidak Sama tidak akan terpanggil.
Berikut Adalah Source Code nya.

import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.*;
import java.util.*;
import javax.swing.JOptionPane;

public class Vertikal {
  
    public void layar() throws LWJGLException {
   
       
      int a1,kordinat11,kordinat22;
       
        String kordinat1 = JOptionPane.showInputDialog("Masukan Titik Kordinat X");
        String kordinat2 = JOptionPane.showInputDialog("Masukan Titik Kordinat Y");
        String a = JOptionPane.showInputDialog("Masukan Panjang Garis");
       
        a1 = Integer.parseInt(a);
        kordinat11 = Integer.parseInt(kordinat1);
        kordinat22 = Integer.parseInt(kordinat2);
       
        try {
        Display.setDisplayMode(new DisplayMode(500,500));
            Display.setTitle("Garis Vertikal");
        Display.create();
    } catch (LWJGLException e) {
        System.exit(0);
    }
        GL11.glMatrixMode(GL11.GL_PROJECTION);
    GL11.glLoadIdentity();
    GL11.glOrtho(0, 500, 0, 500, 1, -1);
    GL11.glMatrixMode(GL11.GL_MODELVIEW);
       
        while (!Display.isCloseRequested()){
           GL11.glBegin(GL11.GL_QUADS);
            GL11.glVertex2f(kordinat11,kordinat22);
        GL11.glVertex2f(kordinat11+5,kordinat22);
        GL11.glVertex2f(kordinat11+5,kordinat22+a1);
        GL11.glVertex2f(kordinat11,kordinat22+a1);
        GL11.glEnd();
            Display.update();
        }
    }
}


Titik Kordinat X tersimpan divariabel Kordinat11, sedangkan Untuk Titik Kordinat Y tersimpan pada nilai Kordinat22 .

Display.setDisplayMode(new DisplayMode(500,500)); "Untuk Mengatur Layar Window Output menjadi 500x500"
Display.setTitle("Garis Vertikal"); "Mengubah Judul Window Menjadi "Garis Vertikal""
Display.create(); "Menampilkan Window"

catch (LWJGLException e) {
        System.exit(0);  "mencegah Window tertutup apabila tidak ada aktivitas pada library LWJGL"
    }
GL11.glMatrixMode(GL11.GL_PROJECTION);
    GL11.glLoadIdentity();
   GL11.glOrtho(0, 500, 0, 500, 1, -1); "Memanggil OpenGL Sbg Window Rendering"
    GL11.glMatrixMode(GL11.GL_MODELVIEW);

 while (!Display.isCloseRequested()) { "mencegah jendela renderer tertutup kecuali ditutup sendiri oleh user"
           
           GL11.glBegin(GL11.GL_QUADS); "memanggil fungsi 'GL_QUADS untuk merender berdasarkan 4 titik yang ditentukan"
            GL11.glVertex2f(kordinat11,kordinat22); "titik awal"
        GL11.glVertex2f(kordinat11+5,kordinat22); "titik awal, pada sumbu x sengaja diberi jeda agar mempertebal garis yang akan dibentuk"
        GL11.glVertex2f(kordinat11+5,kordinat2+a1); "titik akhir, pada sumbu x sengaja diberi jeda agar mempertebal garis yang akan dibentuk"
        GL11.glVertex2f(kordinat11,kordin22+a1); "titik akhir, pada sumbu y variabel akan ditambahkan 'a1' yang sesuai dengan inputan user"
        GL11.glEnd();  "mengakhiri proses render Garis"
            Display.update();

Garis Horizontal

Lalu Setelah Itu Lanjut membuat Class baru Dengan Nama Horizontal. * Jika tidak Sama tidak akan terpanggil.
Berikut Adalah Source Code nya.
 
import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.*;
import java.util.*;
import javax.swing.JOptionPane;

public class Horizontal {
   
    public void layar() throws LWJGLException {
   
   int a1,kordinat11,kordinat22;
       
        String kordinat1 = JOptionPane.showInputDialog("Masukan Titik Kordinat X");
        String kordinat2 = JOptionPane.showInputDialog("Masukan Titik Kordinat Y");
        String a = JOptionPane.showInputDialog("Masukan Panjang Garis");
       
        a1 = Integer.parseInt(a);
        kordinat11 = Integer.parseInt(kordinat1);
        kordinat22 = Integer.parseInt(kordinat2);
            
        try {
        Display.setDisplayMode(new DisplayMode(500,500));
            Display.setTitle("Garis Horizontal");
        Display.create();
    } catch (LWJGLException e) {
        System.exit(0);
    }
        GL11.glMatrixMode(GL11.GL_PROJECTION);
    GL11.glLoadIdentity();
    GL11.glOrtho(0, 500, 0, 500, 1, -1);
    GL11.glMatrixMode(GL11.GL_MODELVIEW);
       
        while (!Display.isCloseRequested()) {
           
           GL11.glBegin(GL11.GL_QUADS);
            GL11.glVertex2f(kordinat11,kordinat22);
        GL11.glVertex2f(kordinat11,kordinat22+5);
        GL11.glVertex2f(kordinat11+a1,kordinat22+5);
        GL11.glVertex2f(kordinat11+a1,kordinat22);
        GL11.glEnd();
            Display.update();
        }
    }
}


Titik Kordinat X tersimpan divariabel Kordinat11, sedangkan Untuk Titik Kordinat Y tersimpan pada nilai Kordinat22 .

Display.setDisplayMode(new DisplayMode(500,500)); "Untuk Mengatur Layar Window Output menjadi 500x500"
Display.setTitle("Garis Horizontal"); "Mengubah Judul Window Menjadi "Garis Horizontal""
Display.create(); "Menampilkan Window"

catch (LWJGLException e) {
        System.exit(0);  "mencegah Window tertutup apabila tidak ada aktivitas pada library LWJGL"
    }
GL11.glMatrixMode(GL11.GL_PROJECTION);
    GL11.glLoadIdentity();
   GL11.glOrtho(0, 500, 0, 500, 1, -1); "Memanggil OpenGL Sbg Window Rendering"
    GL11.glMatrixMode(GL11.GL_MODELVIEW);

 while (!Display.isCloseRequested()) { "mencegah jendela renderer tertutup kecuali ditutup sendiri oleh user"
GL11.glBegin(GL11.GL_QUADS); "memanggil fungsi 'GL_QUADS untuk merender berdasarkan 4 titik yang ditentukan"
    GL11.glVertex2f(kordinat11,kordinat22); "titik awal"    GL11.glVertex2f(kordinat11,kordinat22+5); "titik awal, pada sumbu y sengaja diberi jeda agar mempertebal garis yang akan dibentuk"
    GL11.glVertex2f(kordinat11+a1,kordinat22+5); "titik akhir, pada sumbu x variabel akan ditambahkan 'a1' yang sesuai dengan inputan user dan pada sumbu y sengaja diberi jeda agar mempertebal garis yang akan dibentuk"
    GL11.glVertex2f(kordinat11+a1,kordinat22);  "titik akhir, pada sumbu x variabel akan ditambahkan 'a1' yang sesuai dengan inputan user"
    GL11.glEnd();  "mengakhiri proses render Garis"
    Display.update();


Garis Diagonal

Lalu Setelah Itu Lanjut membuat Class baru Dengan Nama Diagonal. * Jika tidak Sama tidak akan terpanggil.
Berikut Adalah Source Code nya.
 
import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.*;
import java.util.*;
import javax.swing.JOptionPane;

public class Diagonal {
   
    public void layar() throws LWJGLException {
   
        int a1,kordinat11,kordinat22;
       
        String kordinat1 = JOptionPane.showInputDialog("Masukan Titik Kordinat X");
        String kordinat2 = JOptionPane.showInputDialog("Masukan Titik Kordinat Y");
        String a = JOptionPane.showInputDialog("Masukan Panjang Garis");
       
        a1 = Integer.parseInt(a);
        kordinat11 = Integer.parseInt(kordinat1);
        kordinat22 = Integer.parseInt(kordinat2);
        try {
        Display.setDisplayMode(new DisplayMode(500,500));
            Display.setTitle("Garis Diagonal");
        Display.create();
    } catch (LWJGLException e) {
        System.exit(0);
    }
        GL11.glMatrixMode(GL11.GL_PROJECTION);
    GL11.glLoadIdentity();
    GL11.glOrtho(0, 500, 0, 500, 1, -1);
    GL11.glMatrixMode(GL11.GL_MODELVIEW);
       
        while (!Display.isCloseRequested()) {
           
          GL11.glBegin(GL11.GL_QUADS);
            GL11.glVertex2f(kordinat11,kordinat22);
        GL11.glVertex2f(kordinat11-5,kordinat22);
        GL11.glVertex2f(kordinat11+a1-5,kordinat22+a1);
        GL11.glVertex2f(kordinat11+a1,kordinat22+a1);
        GL11.glEnd();
            Display.update();
        }
    }
}


Titik Kordinat X tersimpan divariabel Kordinat11, sedangkan Untuk Titik Kordinat Y tersimpan pada nilai Kordinat22 .

Display.setDisplayMode(new DisplayMode(500,500)); "Untuk Mengatur Layar Window Output menjadi 500x500"
Display.setTitle("Garis Diagonal"); "Mengubah Judul Window Menjadi "Garis Diagonal""
Display.create(); "Menampilkan Window"

catch (LWJGLException e) {
        System.exit(0);  "mencegah Window tertutup apabila tidak ada aktivitas pada library LWJGL"
    }
GL11.glMatrixMode(GL11.GL_PROJECTION);
    GL11.glLoadIdentity();
   GL11.glOrtho(0, 500, 0, 500, 1, -1); "Memanggil OpenGL Sbg Window Rendering"
    GL11.glMatrixMode(GL11.GL_MODELVIEW);

 while (!Display.isCloseRequested()) { "mencegah jendela renderer tertutup kecuali ditutup sendiri oleh user"
GL11.glBegin(GL11.GL_QUADS); "memanggil fungsi 'GL_QUADS untuk merender berdasarkan 4 titik yang ditentukan"
        GL11.glVertex2f(kordinat11,kordinat22); "titik awal"
        GL11.glVertex2f(kordinat11-5,kordinat22); "titik awal, pada sumbu x sengaja diberi jeda untuk mempertebal garis"        GL11.glVertex2f(kordinat11+a1-5,kordinat22+a1); "titik akhir, pada sumbu x dan y variabel akan ditambahkan 'a1' yang sesuai dengan inputan user dan pada sumbu x sengaja diberi jeda untuk mempertebal garis"        GL11.glVertex2f(kordinat11+a1,kordinat22+a1); "titik akhir, pada sumbu x dan y variabel akan ditambahkan 'a1' yang sesuai dengan inputan user"    GL11.glEnd();  "mengakhiri proses render Garis"
    Display.update();

Berikut Adalah Output Dari Program Java Dengan Open GL :

Garis Vertikal



Garis Horizontal




Garis Diagonal



Komentar

Postingan populer dari blog ini

TUGAS 3 : Contoh Prosedur IT Audit & Lembar Kerja IT Audit

CONTOH KALIMAT PENALARAN BAHASA INDONESIA 2#

Bentuk Bagan Struktur Organisasi