Post Page Advertisement [Top]




A.    PENGERTIAN 2 DIMENSI.

3D atau 3 Dimensi adalah sebuah objek / ruang yang memiliki panjang, lebar dan tinggi yang memiliki bentuk. 3D tidak hanya digunakan dalam matematika dan fisika saja melainkan dibidang grafis, seni, animasi, komputer dan lain-lain. 
Mengacu pada tiga dimensi spasial, bahwa 3D menunjukkan suatu titik koordinat Cartesian X, Y dan Z. Penggunaan istilah 3D ini dapat digunakan di berbagai bidang dan sering dikaitkan dengan hal-hal lain seperti spesifikasi kualitatif tambahan (misalnya: grafis tiga dimensi, 3D video, film 3D, kacamata 3D, suara 3D).

B.     PENGERTIAN OPEN GL.

Open GL adalah suatu library grafis standart ang digunakan untuk keperluan –  keperluan pemrograman grafis. Selain OpenGL, library grafis yang banyak digunakan adalah DirectX. OpenGL bersifat opensource, multi-platform dan multi=language. Saat ini semua bahasa pemrograman mendukung OpenGL. Dan OpenGL bisa bekerja dalam lingkungan Windows, Unix, SGI, Linux, freeBSD dll.

C.     INVERS YANG ADA PADA BANGUN 2 DIMENSI.

 Invers yang ada pada bangun 3 dimensi ada 3 yaitu :

1. Translasi
2. Skala
 
3. Rotasi


D.  Menerapkan invers rotasi 3 dimensi kedalam suatu program.
            1. Source Code dan Penjelasan
setLocationRelativeTo(null);
bagian ini berfungsi untuk meng-set Frame waktu running program ke null atau bagian tengah layar.

jSlider1.setValue(0);
berfungsi untuk mengatur slider keposisi 0, pada umumnya slider mempunyai min 0 dan max 100.

jSlider1.setPaintTicks(true);
jSlider1.setMajorTickSpacing(20);
berfungsi untuk memberi garis pada bawah slider dan mengatur jarak spasi antar garis sebesar 20.

Pada Fungsi private void gerak() berisi GLCanvas yang diberinama cvGambar yang akan kita beri gambar Kubus.



       

Gambar 2.0  

Pada Gambar 2.0 dijelaskan pembangunan bangun Kubus 3D yang mempunyai inialisasi yang akan dipakai nantinya. Dalam class ini berisi macam-macam void yaitu :
1.      public void init()
2.      public void display()
3.      public void reshape()
4.      public void displayChanged()
5.      public void drawFace()
pada fungsi public void init() kita akan mengatur type font, maupun size dari font, Dan selanjutnya akan mengambil berapa panjang dan lebar dari kubus yang kita buat dan kita atur berada dimana font tersebut.


Gambar 3.0

gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
Mengatur background warna hitam (R = 0, G = 0, B = 0).

gl.glMatrixMode(GL.GL_MODELVIEW);
gl.glLoadIdentity();
glu.gluLookAt(3, 3, 10,
                    0, 0, 0,
                    0, 1, 0);
Script diatas menjelaskan view yang kita lihat di layar monitor yang menggunakan funsi matriks.
Dimana stiap garis menjelaskan sumbu X, Y, Z.

if (status == 1) {
      gl.glRotatef(flAng, 1, 0, 0);
} else if (status == 2) {
     gl.glRotatef(flAng, 0, 1, 0);
} else if (status == 3) {
     gl.glRotatef(flAng, 0, 0, 1);
}
Dalam fungsi IF ELSE ini menjelaskan jika status 1 maka Kubus akan begerak ke Sumbu X, Status 2 akan bergerak ke sumbu Y, dan status 3 untuk bergerak ke sumbu Z.

gl.glPushMatrix();
gl.glRotatef(-90, 1, 0, 0);
drawFace(gl, 1.6f, 0.2f, 0.2f, 0.8f, "Atas");
gl.glPopMatrix();
drawFace(gl, 1.6f, 0.8f, 0.2f, 0.2f, "Depan");
gl.glPushMatrix();
gl.glRotatef(90, 0, 1, 0);
drawFace(gl, 1.6f, 0.2f, 0.8f, 0.2f, "Kanan");
gl.glRotatef(90, 0, 1, 0);
drawFace(gl, 1.6f, 0.8f, 0.8f, 0.2f, "belakang");
gl.glRotatef(90, 0, 1, 0);
drawFace(gl, 1.6f, 0.2f, 0.8f, 0.8f, "Kiri");
gl.glPopMatrix();
gl.glPushMatrix();
gl.glRotatef(90, 1, 0, 0);
drawFace(gl, 1.6f, 0.8f, 0.2f, 0.8f, "Bawah");
gl.glPopMatrix();
dalam potongan script diatas berfungsi untuk menggambar 6 dinding kubus 3D yang dimana diikuti pengaturan warna, panjang-lebar, tulisan, letak Kubus.




Gambar 4.0
reshape(GLAutoDrawable drawable, int x, int y, int width, int height)
Berfungsi mengatur port mode melihat dan proyeksi, dan melihat volume.

gl.glMatrixMode(GL.GL_PROJECTION);
Untuk beroperasi pada Matriks Proyeksi

glu.gluPerspective(15, (float) width / (float) height, 5, 15);
Dalam potongan script ini menjelaskan bagaimana menentuka proyeksi perspektif. Yang diambil dari kubus yang kita buat.



 
Gambar 5.0

gl.glBegin(GL.GL_QUADS);
gl.glVertex3f(-halfFaceSize, -halfFaceSize, halfFaceSize);
gl.glVertex3f(halfFaceSize, -halfFaceSize, halfFaceSize);
gl.glVertex3f(halfFaceSize, halfFaceSize, halfFaceSize);
gl.glVertex3f(-halfFaceSize, halfFaceSize, halfFaceSize);
gl.glEnd();
Fungsi untuk mentukan x, y, z, dan koordinat w.  glVertex3f(GLfloat  x, GLfloat  y, GLfloat  z) .

Rectangle2D bounds = renderer.getBounds(text);
float w = (float) bounds.getWidth();
float h = (float) bounds.getHeight();
Menentukan area dalam koordinat ruang yang tertutup oleh objek Rectangle titik kiri atas (x, y) di ruang koordinat, lebar, dan tinggi.


  

Gambar 6.0




demo.flAngJalan = jSlider1.getValue();
demo.status = 1;
Mengambil value dari Slider yang dimana value tersebut diambil dari demo.flAngJalan pada Gambar 3.0.
final Animator animator = new Animator(cvGambar);
animator.start();
Object mengambil fungsi dari Gambar 3.0 dan akan bergerak sesuai Fungsi status tersebut.

jLabel4.setText(demo.flAng + "°");
Value yang di ambil flAngJalan dari akan di tampilkan di jLabel4


Gambar 7.0
jSlider1.setValue(0);
jSlider2.setValue(0);
jSlider3.setValue(0);
Mangatur kembali Slider ke titik 0 atau sebelah kiri.

jLabel5.setText("0");
jLabel6.setText("0");
jLabel7.setText("0");
Set kembali Label ke 0°.



SCREEN CAPTURE ROTASI KUBUS 3D





                            Run Program Awal                                       Pergeseran Sumbu X    


              Pergeseran Sumbu Y                                        Pergeseran Sumbu Z     
Nb : Jika Tombol Reset ditekan maka posisi kubus 3D akan kembali saat Run Program Awal


Sekian terimakasih :))) 

No comments:

Post a Comment

Bottom Ad [Post Page]