Anda di halaman 1dari 6

PRAKTIKUM 5

ALGORITHMA PENGGAMBARAN KURVA

5.1. Pembentukan Kurva.

Dilakukan dengan mengestimasikan titik-titik antara yang terletak di antara titik-titik


kontrol.

2 titik kontrol 3 titik kontrol 4 titik kontrol

Gambar 5.1. Bentuk Kurva

Interpolasi Polinom

Rumus umum polinom orde ke-n = f(x) = a0 + a1x + a2x 2+ ….. + anxn

Polinom orde ke-n cocok untuk sejumlah n+1 titik kontrol.


Interpolasi linier:

f(x) = f(x0) + f(x1) – f(x0) (x-x0)


x – x0

Titik Kontrol: (x0, f(x0)), (x1, f(x1))

f(x) = a0 + a1x => a0 = f(x0) – a1x0, a1 = f(x0) – a0/ x0 (Persamaan garis Lurus)

Algorithma Casteljau Untuk Sejumlah (L+1) Titik

Terdapat Sejumlah Titik ; P0, P1, P2, …….., PL, Untuk Suatu Nilai t, didapat : Pir(t) =
(1 - t) Pir-1 (t) + Pi+1 r-1 (t) Untuk r=1….L, i= 0….L-r.

Proses dimulai dengan Menggunakan Pi untuk Pit


Hasil Akhir P0n (t) disebut dengan kurva Bezier untuk titik P0, P1, ….., Pl
P1 P2

P0 P3
Gambar 5.2. Kurva Bezier dg 4 titik kontrol

5.2. Kurva Fractal


Kurva Mempunyai dimensi pecahan ( Fractional Dimension)
- Kurva : Dimensi 1
- Permukaan : Dimensi 2
- Ruang : Dimensi 3

Kurva Fractal Cocok untuk memodelkan object-object yang mempunyai sifat irregular.
Misal: pengunungan, awan, ombak laut, dll. Panjang kurva 1 Dimensi dapat
ditentukan dengan tepat berapa panjangnya, karena jelas titik-titik ujungnya. Kurva
fractal tidak bisa secara tepat ditentukan panjangnya, makin di Zoom makin kelihatan
panjangnya.

Gambar 5.3. Kurva Fractal

Menghitung Dimensi Fractal.

Rumus: D = ln(N) / ln(1/S)

Dengan N = jumlah pembagian pada setiap langkah.


S = Faktor Skala.
Contoh:
Triadiac Koch Curves
Euclidean

Orde 1

N=4
S =¼ Orde 2
Gambar 5.4. Kurva Triadiac Koch
Maka D = ln 4 / ln ( 1/ ¼)
=1
Gambar 4.24. Dimensi Fractal

Membagi garis tanpa mengubah panjangnya.

N=4
S = 1/3
Didapat D = ln 4 / ln ( 1 / 1/3 )
= 1, 2619

5.3. 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 5.5.
berikut:
Gambar 5.5. Menambahkan Java main Class baru pada project

3) Ketik nama Class Aplikasi dengan Praktikum5, lalu klik Finish seperti gambar 5.6.
berikut:

Gambar 5.6. Membuah Klas JFrame Form Baru pada project

4) Tambahkan kode berikut untuk menggambar kurva Bezier dan Kurva Koch pada
Frame yang berukuran 1000 X 600 Piksel, sehingga code secara keseluruhan
sebagai berikut:
package grafikkomputer;

import java.awt.*;
import javax.swing.*;
import java.awt.geom.*;
public class Praktikum5 extends JFrame {

public Praktikum5(){
super("Menggambar Kurva");
setSize(1000,600);
setLocationRelativeTo(null);
setVisible(true);
}

double Radian = 0.017453203;


double S1=0, C1=0;
GeneralPath gp = new GeneralPath();

public void paint (Graphics g){


int S=0, C=0;
Graphics2D g2d = (Graphics2D) g;

//---Buat Kurva Bezier


g2d.setPaint(Color.RED);
g2d.draw(new CubicCurve2D.Double
(100,100,200,20,300, 20, 500, 200 ));

//---Buat Kurva Koch


double Arah=0;
double Panjang=400;
int Orde=0;
g2d.setPaint(Color.BLUE);

C1=250;
S1=350;
Orde=1;
gp.moveTo(C1, S1);
if (Orde == 0) {
S=(int)((Panjang) * Math.sin(Radian*(Arah)));
C=(int)((Panjang) * Math.cos(Radian*(Arah)));
C1+=C;
S1+=S;
gp.lineTo(C1, S1);
}
while (Orde > 0 ) {
Panjang /=3;
Orde -=1;
S=(int)(Panjang * Math.sin(Radian*Arah));
C=(int)(Panjang * Math.cos(Radian*Arah));
C1+=C;
S1+=S;
gp.lineTo(C1, S1);

Arah+=60;
S=(int)(Panjang * Math.sin(Radian*Arah));
C=(int)(Panjang * Math.cos(Radian*Arah));
C1+=C;
S1+=S;
gp.lineTo(C1, S1);

Arah-=120;
S=(int)(Panjang * Math.sin(Radian*Arah));
C=(int)(Panjang * Math.cos(Radian*Arah));
C1+=C;
S1+=S;
gp.lineTo(C1, S1);

Arah+=60;
S=(int)(Panjang * Math.sin(Radian*Arah));
C=(int)(Panjang * Math.cos(Radian*Arah));
C1+=C;
S1+=S;
gp.lineTo(C1, S1);
}
g2d.draw(gp);
}

public static void main(String[] args) {


Praktikum5 gambar = new Praktikum5();
gambar.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

TUGAS:
Modifikasi aplikasi program di atas, dengan merubah algorithma penggambaran kurva
Koch untuk orde 2. Kemudian Jalankan sehingga hasilnya seperti gambah di bawah.

==== Selamat Praktikum ===

Anda mungkin juga menyukai