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).
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
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