Anda di halaman 1dari 7

PRAKTIKUM 8

GRAFIK 3 DIMENSI
8.1. GRAFIK 3 DIMENSI
Apa yang membedakan 2 dimensi dengan 3 dimensi ?
– 2 Dimensi : Tinggi dan Lebar
– 3 Dimensi : Tinggi, Lebar dan Kedalaman
Kedalaman adalah jarak antara pemirsa (viewer) terhadap benda yang dia
lihat.

Gambar 8.1. Bentuk Objek grafik 2 Dimensi dan 3 dimensi


8.2. 3 Dimensi
Bagaimana manusia memperoleh kesan kedalaman pada objek 3 Dimensi ?
– Manusia mempunyai dua mata.
– Kedua mata manusia mempunyai selisih sudut pandang 120 o
– Perbedaan sudut pandang tersebut membuat masing-masing mata
memperoleh gambar yang berbeda untuk objek yang sama.
– Perbedaan gambar diproses oleh otak sehingga kita memperoleh
kesan 'kedalaman' atau jarak terhadap benda.

Gambar 8.2. Sudut pandang mata terhadap benda 3 Dimensi


Sifat-sifat 3 Dimensi :
Setiap titik dalam 3 dimensi ditentukan oleh tiga posisi :
– x : jarak titik tersebut terhadap sumbu x
– y : jarak titik tersebut terhadap sumbu y
– z : jarak titik tersebut terhadap sumbu z
Posisi sebuah titik dalam 3 dimensi dituliskan dalam bentuk (x,y,z). Komputer
dapat digunakan untuk mengolah benda tiga dimensi. Ada tiga persoalan
dalam mengolah benda tiga dimensi menggunakan komputer :
– Pembuatan lokasi titik 3D
– Manipulasi titik 3D
– Transformasi titik 3D menjadi 2D

Pembuatan Lokasi titik koordinat 3 Dimensi


Proses yang digunakan untuk menghasilkan lokasi titik-titik 3D yang
menunjukkan bentuk dari benda 3D
Ada 3 macam proses untuk menghasilkan lokasi titik 3D :
– Penentuan langsung menggunakan peralatan seperti mouse3D,
scanner3D berbagai peralatan lain
– Menggunakan parametric surface
– Menggunakan prosedur khusus seperti extrude dan surface of
revolution.
Parametric surface
Digunakan untuk menghasilkan benda-benda yang dapat direpresentasikan
dalam rumus matematika seperti : bola, donut, tabung, cone dan sebagainya

Gambar 8.3. Contoh bentuk Parametric surface


Extrude
Merupakan prosedur menghasilkan lokasi titik 3D dengan menarik titik-titik 2
dimensi ke satu arah tertentu.

titik hasil extrude

arah extrude

titik asal

Gambar 8.4. Contoh Bentuk Extrude


Surface Of Revolution
Prosedur untuk menghasilkan lokasi titik 3D dengan cara memutar profile
pada sumbu putar

sumbu putar
hasil putaran

profile

Gambar 8.5. Contoh Bentuk Surface Of Revolution


Mesh
Mesh merupakan kumpulan titik 3D yang saling dihubungkan, Model yang
dihasilkan disebut sebagai wireframe model. Permukaan benda (surface)
diperoleh dengan menghubungkan titik-titik vertex baik dalam bentuk
segiempat atau segitia, Umumnya digunakan surface dalam bentuk segitiga
karena bentuk segitiga akan selalu berada dalam keadaan planar (datar).
Gambar 8.6. Contoh bentuk mesh

8.3. Implementasi algorithma 3 Dimensi

Langkah Praktikum :
1) Aktifkan program Java Netbeans.
2) Pilih Project GrafikaKomputer dan klik kanan pada subfolder source
package GrafikaKomputer dan Pilih New dan Java Main Class baru
seperti gambar 8.7 berikut:

Gambar 8.7. Menambahkan Java main Class baru pada project

3) Ketik nama Class Aplikasi dengan Praktikum8, lalu klik Finish seperti
gambar 8.8. berikut:
Gambar 8.8. Membuah Klas JFrame Form Baru pada project

4) Tambahkan kode berikut untuk Menggambar Objek 3 Dimensi ,Pada


Frame dengan ukuran 800 X 800 Piksel, sehingga code secara
keseluluhan sebagai berikut:
package grafikkomputer;

import java.awt.*;
import javax.swing.*;
import javax.media.j3d.*;
import javax.vecmath.*;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.behaviors.mouse.*;
import com.sun.j3d.utils.universe.SimpleUniverse;
import com.sun.j3d.utils.geometry.ColorCube;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;
import javax.media.j3d.Canvas3D;
import javax.swing.JFrame;

public class Praktikum8 extends JFrame {


public Praktikum8() {
super("Demo Rotasi Kubus");
Canvas3D canvas3D = createCanvas3D();
BranchGroup scene = createSceneGraph();
connect(canvas3D, scene);
}

// 1. Menciptakan kanvas 3D
private Canvas3D createCanvas3D() {
setSize(800, 600);
getContentPane().setLayout(new BorderLayout());
GraphicsConfiguration config =
SimpleUniverse.getPreferredConfiguration();
Canvas3D canvas3D = new Canvas3D(config);
setSize(800, 600);
getContentPane().add(canvas3D);
return canvas3D;
}
// Menciptakan scene graph
private BranchGroup createSceneGraph() {
// Menciptakan transformasi group
Transform3D transform = new Transform3D();
transform.set(new Vector3d(0.0, 0.0, -50.0));
TransformGroup tg = new TransformGroup(transform);

// Transformasi sumbu X
Transform3D rotXTransform = new Transform3D();
rotXTransform.rotX(Math.toRadians(20.0));

// Transformasi sumbu Y
Transform3D rotYTransform = new Transform3D();
rotYTransform.rotY(Math.toRadians(20.0));

// Kombinasi rotasi ke dalam transformasi


Transform3D rtf = new Transform3D(rotXTransform);
rtf.mul(rotYTransform);
TransformGroup rg = new TransformGroup(rtf);
tg.addChild(rg);
ColorCube cube = new ColorCube(7.0f);
BranchGroup objRoot = new BranchGroup();
rg.addChild(cube);

// Menciptakan handler/behavior mouse rotate


rg.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
rg.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
MouseRotate mr = new MouseRotate(rg);
mr.setSchedulingBounds(new BoundingSphere(
new Point3d(0, 0, 0), Double.MAX_VALUE));

objRoot.addChild(mr);
objRoot.addChild(tg);
objRoot.compile();
return objRoot;
}
// Mengaitkan kanvas dan branch group
private void connect(Canvas3D canvas3D, BranchGroup
scene){
SimpleUniverse simpleU = new SimpleUniverse(canvas3D);
simpleU.getViewingPlatform().
setNominalViewingTransform();
simpleU.addBranchGraph(scene);
}

public static void main(String[] args) {


new Praktikum8().setVisible(true);
}
}
5) Jalankan Program sehingga hasilnya akan tampak seperti gambar 8.9.
berikut:

Gambar 8.9. Hasil Program 3 Dimensi

TUGAS:
Buatlah program penggambaran objek grafik 3 Dimensi yang lain seperti tabung,
Piramid, kerucut, Bola dan lain-lain

==== Selamat Praktikum ===

Anda mungkin juga menyukai