39
setiap pixel setiap waktu. Algoritma garis Bressenhem disebut juga midpoint line algorithm adalah algoritma
konversi penambahan nilai integer yang juga dapat diadaptasi untuk menggambar sebuah lingkaran.
Langkah-langkah untuk membentuk garis menurut algoritma ini adalah:
1 Tentukan dua titik yang akan dihubungkan dalam pembentukan garis.
2 Tetukan salah satu titik disebelah kiri sebagai titik awal x
, y dan titik lainnya sebagai titik akhir x
1
, y
1
. 3 Hitung Δ x, Δ y, Δ 2x, dan 2Δ y – 2Δ x.
4 Hitung parameter p = 2Δ y – Δ x.
5 Untuk setiap x
k
sepanjang jalur garis, dimulai dengan k = 0
• bila p
k
0 maka titik selanjutnya x
k
+1, y
k
dan p
k+1
= p
k
+2Δ y •
bila tidak maka titik selanjutnya adalah x
k
+1, y
k
+1 dan p
k+1
=p
k
+2Δ -y2Δ x. 6 Ulangi langkah nomor 5 untuk menentukan posisi
pixel selanjutnya, sampai x=x
n
.
Kegiatan Praktikum 3.1 Membuat Titik
Create_Point.java
public class Create_Point { public void render {
glClearGL_COLOR_BUFFER_BIT;
D. Aktivitas Pembelajaran
40
glLoadIdentity; glColor3f0.0f, 1.0f, 0.0f;
glPointSize10; glBeginGL_POINTS;
glVertex2f100, 100; glVertex2f200, 100;
glVertex2f200, 300; glVertex2f100, 300;
glVertex2f150, 375; glVertex2f375, 375;
glVertex2f425, 300; glVertex2f425, 100;
glEnd;
} public static void mainString[] args {
Create_Point main = null; try {
System.out.printlnKeys:; System.out.printlnesc
- Exit; main = new Create_Point;
main.create; main.run;
} catch Exception ex { LOGGER.logLevel.SEVERE, ex.toString, ex;
} finally { if main = null {
main.destroy; }
} }
private void create throws LWJGLException { Display.setDisplayModenew
DisplayModeDISPLAY_WIDTH, DISPLAY_HEIGHT;
Display.setFullscreenfalse; Display.setTitleCreate Point;
Display.create; Keyboard
Keyboard.create; Mouse
Mouse.setGrabbedfalse; Mouse.create;
OpenGL initGL;
resizeGL; To change body of generated methods, choose
Tools | Templates. }
private void run { while
Display.isCloseRequested Keyboard.isKeyDownKeyboard.KEY_ESCAPE {
if Display.isVisible { render;
} else { if Display.isDirty {
41
render; }
try { Thread.sleep100;
} catch InterruptedException ex { }
} Display.update;
Display.sync60; }
} private void destroy {
Mouse.destroy; Keyboard.destroy;
Display.destroy; }
private void initGL { 2D Initialization
glClearColor0.0f, 0.0f, 0.0f, 0.0f; glDisableGL_DEPTH_TEST;
glDisableGL_LIGHTING;
} private void resizeGL {
2D Scene glViewport0, 0, DISPLAY_WIDTH, DISPLAY_HEIGHT;
glMatrixModeGL_PROJECTION; glLoadIdentity;
gluOrtho2D0.0f, DISPLAY_WIDTH, 0.0f, DISPLAY_HEIGHT; glPushMatrix;
glMatrixModeGL_MODELVIEW; glLoadIdentity;
glPushMatrix;
} }
Keluaran Program
42
Kegiatan Praktikum 3.2 Membuat Garis
Create_Line.java
public class Create_Line { public void render {
glColor3f1.0f, 0.0f, 1.0f; glLineWidth5;
glBeginGL_LINES; glVertex2f100, 100;
glVertex2f100, 350; glVertex2f200, 100;
glVertex2f300, 350; glVertex2f350, 225;
glVertex2f550, 225; glEnd;
glFlush;
} public static void mainString[] args {
Create_Line main = null; try {
System.out.printlnKeys:; System.out.printlnesc
- Exit; main = new Create_Line;
main.create; main.run;
} catch Exception ex { LOGGER.logLevel.SEVERE, ex.toString, ex;
} finally { if main = null {
main.destroy; }
} }
private void create throws LWJGLException { Display.setDisplayModenew DisplayModeDISPLAY_WIDTH,
DISPLAY_HEIGHT; }
private void run { ....
}