Interpolasi Polinom
Rumus umum polinom orde ke-n = f(x) = a0 + a1x + a2x 2+ ….. + anxn
f(x) = a0 + a1x => a0 = f(x0) – a1x0, a1 = f(x0) – a0/ x0 (Persamaan garis Lurus)
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.
P0 P3
Gambar 5.2. Kurva Bezier dg 4 titik kontrol
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.
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
N=4
S = 1/3
Didapat D = ln 4 / ln ( 1 / 1/3 )
= 1, 2619
3) Ketik nama Class Aplikasi dengan Praktikum5, lalu klik Finish seperti gambar 5.6.
berikut:
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);
}
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);
}
TUGAS:
Modifikasi aplikasi program di atas, dengan merubah algorithma penggambaran kurva
Koch untuk orde 2. Kemudian Jalankan sehingga hasilnya seperti gambah di bawah.