LAPORAN UAS
GRAFIKA KOMPUTER
JAVA NEATBEANS
TENTANG
(SEGITIGA 3D
DENGAN OPEN-GL)
Diajukan untuk memenuhi tugas (UAS) matakuliah Grafkom
Disusun Oleh
:
Nama : Sahrul Gunawan
Npm : 130403010045
Fak/Prodi : FTI/TI
FAKULTAS
TEKNOLOGI INFORMASI
PROGRAM
STUDI TEKNIK INFORMATIKA
UNIVERSITAS
KANJURUHAN MALANG
2014
KATA PENGANTAR
Puji syukur penulis panjatkan kehadirat
Allah SWT, yang mana telah memberikan saya kekuatan
serta kelancaran dalam menyelesaikan laporan
matakuliah Grafika komputer yang
berjudul “Segitiga 3D dengan OpenGl” dapat
selesai seperti waktu yang telah penulis rencanakan.
Tersusunnya laporan ini tentunya tidak lepas dari peran
serta berbagai pihak yang telah memberikan bantuan secara materil dan
spiritual, baik secara langsung maupun tidak langsung.
1.
Bapak Amak Yunus pengasuh mata kuliah pemprograman
java.
2.
Orang tua yang telah
memberikan bantuan kepada penulis sehingga makalah ini dapat terselesaikan
3.
Teman-teman yang telah
membantu dan memberikan dorongan semangat agar makalah ini dapat penulis
selesaikan.
Semoga Tuhan Yang Maha Pengasih dan
Penyayang membalas budi baik yang tulus dan ikhlas kepada semua pihak yang
penulis sebutkan di atas.
Tak ada gading yang tak retak, untuk itu
penulispun menyadari bahwa laporan yang
telah penulis susun masih memiliki banyak kelemahan serta kekurangan-kekurangan
baik dari segi teknis maupun non-teknis. Untuk itu penulis
membuka pintu yang selebar-lebarnya kepada semua pihak agar dapat memberikan
saran dan kritik yang membangun demi penyempurnaan penulisan-penulisan
mendatang. Dan apabila di dalam laporan ini
terdapat hal-hal yang dianggap tidak berkenan di hati pembaca mohon dimaafkan.
Malang, 31 Mei 2014
Penulis
A. Latar Belakang Grafkom
Grafik
Komputer ialah suatu ilmu komputer yang berkaitan dengan pembuatan dan
manipulasi gambar dengan cara digital. Bentuk sederhana nya ada grafik Komputer
2D dan berkembang menjadi grafik komputer 3D.
Pengolahan
citra ialah salah satu cabang ilmu informatika, pengolahan citra suatu usaha
untuk melakukan transformasi citra atau gambar menjadi citra lain dengan suatu
teknik tertentu.
Jadi menurut saya Grafik Komputer dan Pengolahan Citra, salah satu ilmu komputer yang menjelaskan tentang manipulasi gambar dengan cara digital, grafik 2D dan 3D, juga mengolah suatu citra atau gambar, menjadi citra lain dengan teknik tertentu.
Jadi menurut saya Grafik Komputer dan Pengolahan Citra, salah satu ilmu komputer yang menjelaskan tentang manipulasi gambar dengan cara digital, grafik 2D dan 3D, juga mengolah suatu citra atau gambar, menjadi citra lain dengan teknik tertentu.
A. Manfaat
Contoh
Grafik Komputer :
1.
Hiburan , seperti film animasi dengan
grafik komputer yang bagus.
2.
Pendidikan, permainan untuk pendidikan
mengunakan grafik computer yang menarik di lihat.
3.
karya seni, Hasil dapat berupa kartun,
animasi, logo, lukisan abstrak, dsketsa dan lain sebagainya.
B. Tujuan
1. Menyelesaikan Ujian Akhir Semester matakuliah Grafika Komputer semester 2.
2. Mahasiswa mampu mengimplementasikan fungsi dari project tersebut dengan
menggunakan bahasa pemrograman Java Neatbeans.
C.
Tentang Program
Penulis membuat Segitiga 3D dengan OpenGL menggunakan aplikasi Java
Neatbeans, dalam program ini penulis menggunakan OpenGL yang mana dalam program
ini user harus menginputkan sofware openGl-nya agar nantinya program bisa
dijalankan. Atau bisa juga menggunakan software 3D dengan menambahkan di libraries-nya.
D.
Source Code Program
package org.yourorghere;
import com.sun.opengl.util.Animator;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.media.opengl.GL;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLCanvas;
import javax.media.opengl.GLEventListener;
import javax.media.opengl.glu.GLU;
import java.awt.color.*;
/**
* SimpleJOGL.java <BR>
* author: Brian Paul (converted to
Java by Ron Cemer and Sven Goethel) <P>
*
* This version is equal to Brian
Paul's version 1.2 1999/10/21
*/
public class SimpleJOGL implements GLEventListener {
public static void main(String[]
args) {
Frame frame = new
Frame("SAHRUL GUNAWAN 130403010045");
GLCanvas canvas = new
GLCanvas();
canvas.addGLEventListener(new
SimpleJOGL());
frame.add(canvas);
frame.setSize(500, 350);
final Animator animator = new
Animator(canvas);
frame.addWindowListener(new
WindowAdapter() {
@Override
public void
windowClosing(WindowEvent e) {
// Run this on
another thread than the AWT event queue to
// make sure the call
to Animator.stop() completes before
// exiting
new Thread(new
Runnable() {
public void run()
{
animator.stop();
System.exit(0);
}
}).start();
}
});
// Center frame
frame.setLocationRelativeTo(null);
frame.setVisible(true);
animator.start();
}
private float r;
public void init(GLAutoDrawable
drawable) {
// Use debug pipeline
// drawable.setGL(new
DebugGL(drawable.getGL()));
GL gl = drawable.getGL();
System.err.println("INIT
GL IS: " + gl.getClass().getName());
// Enable VSync
gl.setSwapInterval(1);
// Setup the drawing area and shading mode
gl.glClearColor(0.0f, 0.0f,
0.0f, 0.0f);
gl.glShadeModel(GL.GL_SMOOTH); // try setting this to GL_FLAT and see
what happens.
}
public void
reshape(GLAutoDrawable drawable, int x, int y, int width, int height) {
GL gl = drawable.getGL();
GLU glu = new GLU();
if (height <= 0) { //
avoid a divide by zero error!
height = 1;
}
final float h = (float) width / (float)
height;
gl.glViewport(0, 0, width,
height);
gl.glMatrixMode(GL.GL_PROJECTION);
gl.glLoadIdentity();
glu.gluPerspective(45.0f, h,
1.0, 20.0);
gl.glMatrixMode(GL.GL_MODELVIEW);
gl.glLoadIdentity();
}
public void
display(GLAutoDrawable drawable) {
GL gl = drawable.getGL();
// Clear the drawing area
gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
// Reset the current matrix
to the "identity"
gl.glLoadIdentity();
// Move the "drawing
cursor" around
gl.glTranslatef(-1.5f, 0.0f,
-5.0f);
// Drawing Using Triangles
/*gl.glBegin(GL.GL_TRIANGLES);
gl.glColor3f(1.0f, 0.0f,
0.0f); // Set the current drawing
color to red
gl.glVertex3f(0.0f, 1.0f,
0.0f); // Top
gl.glColor3f(0.0f, 1.0f,
0.0f); // Set the current drawing
color to green
gl.glVertex3f(-1.0f,
-1.0f, 0.0f); // Bottom Left
gl.glColor3f(0.0f, 0.0f,
1.0f); // Set the current drawing
color to blue
gl.glVertex3f(1.0f,
-1.0f, 0.0f); // Bottom Right
// Finished Drawing The
Triangle
gl.glEnd();
// Move the "drawing cursor" to
another position
gl.glTranslatef(3.0f, 0.0f,
0.0f);
// Draw A Quad
gl.glBegin(GL.GL_QUADS);
gl.glColor3f(0.5f, 0.5f,
1.0f); // Set the current drawing
color to light blue
gl.glVertex3f(-1.0f,
1.0f, 0.0f); // Top Left
gl.glVertex3f(1.0f, 1.0f,
0.0f); // Top Right
gl.glVertex3f(1.0f,
-1.0f, 0.0f); // Bottom Right
gl.glVertex3f(-1.0f,
-1.0f, 0.0f); // Bottom Left
// Done Drawing The Quad
gl.glEnd();*/
gl.glRotatef(r,0.0f, 0.0f, 0.1f);
gl.glBegin (GL.GL_QUADS);
gl.glColor3f (0.0f, 0.1f, 0.0f);
gl.glVertex3f (0.0f, 0.5f, 0.0f);
gl.glVertex3f (0.4f, 0.5f, 0.0f);
gl.glVertex3f (0.4f, 0.5f, 0.4f);
gl.glVertex3f (0.0f, 0.5f, 0.4f);
gl.glEnd();
gl.glBegin (GL.GL_TRIANGLES) ;
gl.glColor3f(1.0f, 0.0f, 0.0f); //r
gl.glVertex3f (0.0f, 0.5f, 0.0f);
gl.glColor3f(0.0f, 0.0f, 1.0f); //b
gl.glVertex3f (0.4f, 0.5f, 0.0f);
gl.glColor3f(0.0f, 1.0f, 0.0f); //g
gl.glVertex3f (0.2f, 0.0f, 0.2f);
gl.glColor3f(1.0f, 0.0f, 0.0f); //r
gl.glVertex3f (0.4f, 0.5f, 0.0f);
gl.glColor3f(0.0f, 0.0f, 1.0f); //b
gl.glVertex3f (0.4f, 0.5f, 0.4f);
gl.glColor3f(0.0f, 1.0f, 0.0f); //g
gl.glVertex3f (0.2f, 0.0f, 0.2f);
gl.glColor3f(1.0f, 0.0f, 0.0f); //r
gl.glVertex3f (0.4f, 0.5f, 0.4f);
gl.glColor3f(0.0f, 0.0f, 1.0f); //b
gl.glVertex3f (0.0f, 0.5f, 0.4f);
gl.glColor3f(0.0f, 1.0f, 0.0f); //g
gl.glVertex3f (0.2f, 0.0f, 0.2f);
gl.glColor3f(1.0f, 0.0f, 0.0f); //r
gl.glVertex3f (0.0f, 0.5f, 0.4f);
gl.glColor3f(0.0f, 0.0f, 1.0f); //b
gl.glVertex3f (0.0f, 0.5f, 0.0f);
gl.glColor3f(0.0f, 1.0f, 0.0f); //g
gl.glVertex3f (0.2f, 0.0f,0.2f);
gl.glEnd ();
r++;
// Flush all drawing
operations to the graphics card
gl.glFlush();
}
public void
displayChanged(GLAutoDrawable drawable, boolean modeChanged, boolean
deviceChanged) {
}
}
Komentar ini telah dihapus oleh pengarang.
BalasHapusIjin berbagi ke rekan-rekan yang punya hobi bikin game
BalasHapushttp://heriadyblog.blogspot.com/2015/05/belajar-c-game-programming.html