Anda di halaman 1dari 22

MATHEMATICAL CURVES

esp. SPACE CURVES

 Dua cara untuk mendesain sebuah fungsi yang baru :


- Melakukan “fairing” terhadap bentuk yang ada.
- Menciptakan sesuatu bentuk yang baru.
 Curves dapat direpresentasikan sebagai suatu koleksi dari titik-titik.
 Dalam konteks matematika, masalah penentuan sebuah kurva secara
analitik dari sejumlah data titik merupakan salah satu bentuk
interpolasi.
 Curve dapat dipandang sebagai representasi dari polynomial dengan
suatu derajat tertentu.
 Bentuk umum polynomial :
y = ao + a1x + a2x2 + a3x3 + … + anxn
yang merupakan polynomial dengan derajat n
Contoh :



 

Jika ada 5 titik, maka derajat polynomial = 4


y = a0 + a1x + a2x2 + a3x3 + a4x4

Computer Aided Design - Djauhar Manfaat - JTP 1


 Sebuah curve yang melalui semua data titik yang diketahui dikatakan
bahwa curve ini “fit” data. Salah satu teknik yang umum untuk
“curve fitting” adalah “piecewise polynomial approximation”.
 Jika data titik merupakan pendekatan dari beberapa nilai yang tidak
diketahui, misal : nilai-nilai yang didapat dari pengukuran dalam
eksperimen atau data yang diamati, maka sebuah curve yang
menunjukkan “trend” yang benar dari data diperlukan.
Pada umumnya, curve ini mungkin tidak akan melalui data titik yang
ada. Curve yang demikian dikatakan sebagai mem “fair” data.
 Satu teknik “curve fairing” yang umum adalah metode “least
squares approximation”.
 Metode ini menghasilkan sebuah curve dalam bentuk y = f (x) yang
meminimumkan jumlah deviasi kuadrat dari nilai-nilai y antara data
titik dan curve.

Computer Aided Design - Djauhar Manfaat - JTP 2


1. LEAST SQUARES
APPROXIMATION


   



X
X

m
y   ai xi  a0  a1x  a2 x 2  ...  am x m
i 0


Tujuan : meminimalkan harga 2

Yi
x x x
x x x
x x
x
x x x
x
Y(xi)-Yi
Yi Y(xi)

n
  2   y ( xi )  yi 
2

i 1

2 m
y ( xi)  a0  a1 xi  a2 xi  ...  am xi

 Penurunan rumus:
Computer Aided Design - Djauhar Manfaat - JTP 3
Untuk titik ke – k:
 k  ( a0  a1 xk  a2 xk 2  ...  am xk m )  y k
2
 k 2  ( a0  a1 xk  a2 x k 2 ...  am xk m  y k )
n n

 k 1
k
2
  (a
k 1
o  a1 xk  a 2 xk
2
 ...  am xk
m

 n

 (a
2 m
o  a1 xk  a 2 xk  ...  a m xk  yk )
ai k 1

 2(a
k 1
0
2
 a1 xk a2 xk  ...  am xk  yk )xk  0
m i

Untuk i = 0,1,2,3,…,m
Jika i = 0:
n
a 0 1  a1  x k  a 2  x k  ...  a m  x k   yk
2 m

k 1

a 0  x k  a1  x k  a 2  x k  ...  a m  x k   xk y k
2 3 m 1

| | | | |
|m m|1 | |m |
a0  x x 
m m
x k |  a1 k |  ............... 
| am k xk| yk |
| | | | |

Persamaan-persamaan di atas dapat disederhanakan dalam bentuk


matrix:
1 Xk Xk2 … Xkm a0 Yk
Xk Xk2 … Xkm+1 a1 XkYk
| | | |
|
|
|
|
| | a2 = Xk2Yk
| | ! !
| | | |
|| | ! !
| | ! !
Xkm Xkm+1 … Xk2m am XkmYk
XA = Y
Computer Aided Design - Djauhar Manfaat - JTP 4
2. LAGRANGEAN INTERPOLATION
 Untuk memecahkan masalah polynomial interpolation.
 Misal, diketahui 3 titik:


X1, Y1
X0, Yo 
X2, Y2

Maka Lagrangean interpolation coefficients Li (x) :


1 untuk x = x0
( x  x1 )( x  x 2 )
L0 ( x)  
( x0  x1 )( x0  x2 )
0 untuk x = x1, x = x2

1 untuk x = x1
( x  x 0 )( x  x 2 )
L1 ( x)  
( x1  x 0 )( x1  x 2 )
0 untuk x = x0, x = x2

1 untuk x = x2
( x  x0 )( x  x1 )
L2 ( x )  
( x 2  x0 )( x 2  x1 )
0 untuk x = x0, x = x1
Persamaan Lagrangean Polynomial:
PL ( x )  Lo ( x ). y 0  L1 ( x ). y1  L2 ( x ). y 2

 Untuk n titik :
n
PL ( x)   L ( x). y
i0
i i

n (x  x j ) ( x  x0 )( x  xi )...( x  xi 1 )( x  xi 1 )...( x  xn )
Li ( x)   
j0
ji
( xi  x j ) ( xi  x0 )( xi  x1 )...( xi  xi 1 )( xi  xi 1 )...( xi  xn )

 = product symbol

Computer Aided Design - Djauhar Manfaat - JTP 5


CUBIC SPLINES

 Ide dasar seperti kurva yang direpresentasikan dengan “strooklat”:

”strooklat”
(physical spline)

Support (pemberat) ->


“duck”

 Jika sebuah physical spline dipertimbangkan sebagai sebuah balok


elastis yang tipis, maka dengan persamaan Euler:
EI
M ( x)  ...................... ................... ................ (1)
R( x)
Computer Aided Design - Djauhar Manfaat - JTP 6
Dimana: M = Momen lengkung (bending moment)
E = Modulus Young
I = Momen Inertia
R = Radius lengkungan (radius of curvature)
Kita dapat mempertimbangkan sebuah segmen dari spline tersebut
seperti diagram di bawah ini:

Y
ds

R
X
O X
d
dx
C
Pada titik-titik ujung elemen ds kita buat garis-garis normal yang
berpotongan di titik C, sehingga radius of curvature R dapat
ditentukan.

Jika sudut antara dua garis normal adalah d, maka:


ds  R . d
atau
dθ 1
 ................... ................... .............. ...... ............... ( 2)
ds R

 Agar supaya lengkungan spline dalam batas elastis dari


materialnya, garisnya biasanya akan di atas. Dengan asumsi ini,
yaitu ds  dx dan  = dy/dx, maka persamaan (2) dapat ditulis
ulang sebagai:
1 d d2y
  .............. .......... ...................... (3)
R ds dx 2

Computer Aided Design - Djauhar Manfaat - JTP 7


 Persamaan (3) dan (1) digabungkan menghasilkan:
d2y M
2
 ............................................... ( 4)
dx EI

 Dengan menganggap bahwa pemberat (atau ”ducks”) beraksi


sebagai tumpuan sederhana, maka M(x) akan merupakan sebuah
fungsi linear antara tumpuan-tumpuan tersebut, atau:

M ( x )  A  Bx

 Oleh karena itu, persamaan (4) menghasilkan y sebagai fungsi


polynomial x pangkat 3, sehingga dinamakan ”cubic spline”.
 Mathematical spline adalah sebuah ”piecewise polynomial”
degree (pangkat) k dengan kontinuitas dari turunan-turunan dengan
order k-1 pada sambungan-sambungan antar segmen. Oleh karena
itu, cubic spline mempunyai kontinuitas order kedua (”second
order continuity”) pada sambungan-sambungan (yaitu tumpuan-
tumpuan pada sebuah physical spline).
 Titik-titik yang dilalui oleh splines disebut dengan ”knots”, dan
splines akan melalui semua knots. Jadi, splines utamanya adalah
sebuah alat ”Interpolasi”.
 Penggunaan polynomial pangkat rendah mengurangi persyaratan-
persayaratan komputasi dan ketidakstabilan numerik. Namun,
karena polynomial pangkat rendah tidak dapat dibuat melalui
sebuah urutan titik yang acak, maka ”piecewise” polynomials
harus digunakan.

Computer Aided Design - Djauhar Manfaat - JTP 8


Jadi sekarang kita mempunyai suatu praktek yang umum dari
penggunaan suatu urutan cubic splines dengan setiap segmen
mempunyai span harga antara 2 titik. Cubic spline yang digunakan
dalam cara ini akan memungkinkan terdapatnya sebuah titik
infleksi (perubahan) pada setiap span dan oleh karena itu
mempunyai kemampuan untuk berputar dalam ruang.
 Bentuk parametrik akan digunakan dalam pembahasan/formulasi
tentang cubic splines.
 Persamaan untuk sebuah segmen cubic spline parametrik tunggal
adalah sebagai berikut:
4
Q (t )  B t
i 1
i
i 1
.......................................... (5)

Dimana: t = parameter dan t1  t  t2


Q(t) = [x(t), y(t)]
 Persamaan (5) dapat ditulis ulang dalam suatu bentuk yang
dikembangkan sbb:
Q(t )  B1  B2t  B3t 2  B4t 3 .............. (6)

Bi adalah sebuah vektor dengan 2 komponen, masing-masing


berhubungan dengan salah satu dari sumbu-sumbu x dan y.
Jadi:
4
x   Bix .t i 1  B1 x  B2 x t  B3 x t 2  B4 x t 3
i 1
4
y   Biy .t i 1  B1 y  B2 y t  B3 y t 2  B4 y t 3
i 1

Computer Aided Design - Djauhar Manfaat - JTP 9


 Misalkan sepasang titik yang dilewati oleh sebuah segmen curve
ditandai dengan vector-vektor P1 dan P2. Vektor tangen dari kedua
titik tersebut adalah P1’ dan P2’ yang merupakan turunan pertama
P1 dan P2 terhadap parameter t. Parameter t bervariasi dari t 1
sampai dengan t2 dalam segmen tersebut, dan kedua nilai t tersebut
dapat dipilih secara acak dengan kondisi t1 < t2. Untuk
menyederhanakan komputasi kita pilih t1 = 0. Maka, syarat-syarat
batas (boundary conditions) adalah :
Q(0) = P1
Q(t2) = P2 ………………(7)
dQ/dt = P1’ pada t = 0
dQ/dt = P2’ pada t = t2

 Dengan menggunakan persamaan (6) dan (7):


Q(0) = B1 = P1
 4 
dQ / dt |t 0   (i  1)t i  2 Bi 
 i 2  t 0

 B2  P1 '

 4 
Q (t 2 )   Bi t i 1  ..............................(8)
 i 1  t t2

2 3
 B1  B2 t 2  B3t 2  B4 t 2

 4 
dQ / dt | t t 2   (i  1)t i  2 Bi 
 i 1 
Computer Aided Design - Djauhar Manfaat - JTP t t 2 10
2
 B2  2 B3t 2  3B4 t 2

 Memecahkan hubungan persamaan-persamaan di atas untuk B3 dan


B4 menghasilkan:

3( P2  P1 ) 2 P1 ' P2 ' d
B3  2
  ............................(9)
t2 t2 t2

dan
2( P1  P2 ) P1 ' P2 '
B4  3
 2
 2
.....................................(10)
t2 t2 t2

 Oleh karena itu, dengan syarat-syarat batas di atas, cubic spline


dapat ditentukan sebagai berikut:
 3( P  P ) 2 P ' P '   2( P  P ) P ' P ' 
P(t )  P1  P1 ' t   2 2 1  1  2  t 2   1 3 2  12  22  t 3 ..........(11)
 t2 t2 t2   t2 t2 t2 

Perhatikan bahwa persamaan spline tergantung pada nilai-nilai ujung


dari parameter bersama-sama dengan 2 vektor posisi dan 2 vektor
tangen. Persamaan (11) adalah ekspresi untuk satu segmen cubic spline
yang mempunyai span antara 2 knots yang berdekatan.

Kita amati 2 segmen spline yang berdekatan, Q k(t) dan Qk+1(t),1 k n-


2, yang melalui titik-titik Pk, Pk+1 dan Pk+2 (n adalah jumlah titik data
dalam set titik). Misalkan, variasi parameternya adalah 0  t  tk+1
dan 0  t  tk+2 untuk Qk(t) dan Qk+1(t), maka persamaan spline
untuk kedua segmen tersebut adalah :
'  3( P  P ) 2 P ' P '   2( P  P ) P ' P ' 
Q k (t)  Pk  Pk t   k 21 k  k  k 1  t 2   k 3 k 1  2 k  2 k 1  t 3
 t k 1 t k 1 t k 1   t k 1 t k 1 t k 1 

Computer Aided Design - Djauhar Manfaat - JTP 11


dan
 3( P  P ) 2 P 'k 1 P' k  2  2  2( Pk 1  Pk 2 ) P' k 1 P' k  2  3
Q k 1 (t)  Pk 1  P' k 1 t   k 22 k 1   t   3
 2  2 t
 t k  2 t k 2 t k 2   t k  2 t k 2 t k 2 

Kedua segmen tersebut akan melalui ketiga titik diatas.


Namun, kita masih perlu untuk meyakinkan bahwa kedua segmen
tersebut akan bertemu/bergabung secara smooth pada titik P k+1. Ini
dapat dilakukan dengan menerapkan suatu syarat lengkungan konstan
(constant curvature) pada titik sambung tersebut (mengikuti prinsip
second-order continuity).
Pk+1

Pk Pk+2
 awal akhir 

Q"k (t k 1 )  Q"k 1 ( 0)

Dari persamaan (5) kita mempunyai:


4
Q" (t)   i 1
(i 1)(i  2) Bi t i 3

Pada akhir dari segmen spline ke-k dimana t = tk+1 :

Q" (t)  2B 3  6 B4 t k 1

Dan pada awal dari segmen spline berikutnya dimana t = 0


Q" (t)  2B3

Computer Aided Design - Djauhar Manfaat - JTP 12


Menggabungkan 2 persamaan di atas (tetapi dengan mengingat bahwa
Bi untuk persamaan-persamaan tersebut adalah tidak sama) dan
menyusun kembali gabungan persamaan-persamaan tersebut kita
dapatkan:
t k  2 P'k 2(t k  2  t k 1 ) P'k 1 t k 1 P 'k  2


3

t k 1t k  2

t 2 k 1 ( Pk  2  Pk 1 )  t 2 k  2 ( Pk 1  Pk ) .......... ...(12)

Persamaan (12) ini berlaku untuk semua segmen.


Kita kemudian dapat menulis semua persamaan-persamaan dari
semua segmen di atas dalam bentuk matrix seperti berikut ini:

t3 2(t3 + t2) t2 0 ……… P1 ’


0 t4 2(t3 + t4) t3 0… P2 ’
0 0 t5 2(t4 + t5) t4….. P3 ’
¦ ¦ ¦ … ¦
¦ ¦ ¦ ¦ …. ¦

3 2
 t (
t t 2 3 2 3 2 1 P  P )  t
2
( P  P )


 23

3 2
t t  t 3 ( P4  P 3 )  t 4
2
( P3  P2 )


¦
¦
34  ¦
 ............(13)
 
 
 3 2
  2
 
t n1 ( Pn  Pn1 )  tn ( Pn1  Pn2 ) 
 tn1t n 
  Agar supaya kurva-kurva cubic spline
dapat diplot melalui satu set dari n titik, kita perlu mempunyai 2

Computer Aided Design - Djauhar Manfaat - JTP 13


vektor tangen di kedua ujung kurva bersama-sama dengan n vector
posisi/titik. Persamaan (13) kemudian dipecahkan untuk vector-vektor
tangen pada sambungan-sambungan. Dengan vector-vektor tangen
ini, koefisien-koefisien Bi kemudian dihitung dimana dalam bentuk
umumnya adalah :
B1  Pk
B2  Pk '
3( Pk 1  Pk ) 2 P ' k P' k 1
B3   
t 2 k 1 t k 1 t k 1
2( Pk  Pk 1 ) P' k P'
B4  3
 2  2 k 1
t k 1 t k 1 t k 1

Range dari parameter t atau tmax (atau t k+1) sangat penting dalam
meyakinkan “smoothness” atau “fairness” dari kurva. Ada dua
metode umum dalam menentukan harga tmax :
(a) Membuat harga tmax sama dengan “chord lengths”
antara knots yang berurutan.
(b) Membuat harga tmax = 1 untuk setiap segmen.
Jika tmax = 1 digunakan, metode ini sering disebut pendekatan
parameter yang dinormalisasikan. Ini relatif menghasilkan set
persamaan-persamaan yang sederhana sbb:

4 1 0 0 …………… P2 ’ 3(P3 - P1) - P1’


1 4 1 0 ……………. P3 ’ 3(P4 – P2)
0 1 4 1 ……………. P4 ’ = 3(P5 – P3)
……………………………………. …. …………….
…………………….0 1 4 P’n-1 3(Pn – Pn-2)-Pn’
…………………….(14)

Computer Aided Design - Djauhar Manfaat - JTP 14


Juga,
B4 2 -2 1 1 Pk
B3 = -3 3 -2 -1 Pk+1 …………… (15)
B2 0 0 1 0 Pk ’
B1 1 0 0 0 P’k+1

Persamaan (14) adalah persamaan yang digunakan jika kedua harga


tangen di ujung-ujung diberikan. Meskipun lebih sederhana, cara ini
mempunyai beberapa kelemahan. Khususnya untuk distribusi knots
yang sangat tidak merata.

Ada juga beberapa metode untuk menentukan 2 kondisi ujung.


Yang paling banyak digunakan adalah:
- cyclic
- anti – cyclic
- free ends (atau natural spline) atau relaxed.
Sebagian besar paket-paket yang didasarkan pada teknik cubic spline
menggunakan kondisi free ends sebagai kondisi default.

 Relaxed/Natural end condition.


P2 P3 Q(t)  B1  B2 t  B3t 2  B4t 3
  Q' (t)  B2  2 B3t  3B4 t 2
Q" (t)  2B 3  6 B4 t  0, untuk t  0
 
Pn
P1
Q”(t) = 0 pada P1 dan Pn

Computer Aided Design - Djauhar Manfaat - JTP 15


Jadi pada P1, B3 = 0:
3( P2  P1 ) 2 P1 ' P2 '
2
  0
t2 t2 t2

3( P2  P1 )
2 P1 ' P2 ' 
t2

Pada Pn , B3 + 3B4tn = 0:
3( Pn  Pn 1 ) 2 P' n 1 Pn ' 6( Pn 1  Pn ) 3P' n 1 3Pn '
2
   3
 2
 2 0
tn tn tn tn tn tn

3  ' 3  ' 6
  2 P n 1    1 Pn  2  2tn ( Pn  Pn 1 )  Pn 1  Pn 
 tn   tn  tn

 Cyclic

Y P3 P1’ = P7 ’
P4

P1” = P7”
P2
P5
P1

P7 P6

Y X
P6
P1’ = P6 ’
 Anti Cyclic P5
P4 P” = P”
P1’ = -1 P7 ’ 6
P3
P2
P3
P4 P1” = - P7”
P1 t4

Computer Aided Design - Djauhar Manfaat - JTP 16


P5
t4 disebut dengan chord length.

t 4  P3 P4  ( X 4  X 3 ) 2  (Y4  Y3 ) 2
P2
P6

P1 Untuk normalisasi : t4 = 1
P7

BEZIER CURVES

 Sebuah Bezier curve, pertama kali dikembangkan oleh Bezier pada


tahun 1970, secara fundamental adalah sebuah curva interpolasi
antara titik-titik pertama dan terakhir dari (Bezier) polygon.
Contoh :

P2
Pn
P1 
P3 Pn-2
 

Po   Pn-1

Secara umum, untuk sebuah polygon dengan n+1 vertices, Bezier


curve adalah order ke-n.
 Basis matematis dari Bezier polynomial :

Computer Aided Design - Djauhar Manfaat - JTP 17


n i in
Jn,i (t) =  t (1t)
i 
dimana :

n n!
 
i  !( ini )!
 Titik-titik curva atau titik-titik pada Bezier polynomial adalah :
n
Q(t )   Pi J n ,i (t ),0  t  1
i 0

juga :
n! 0.
J n , 0 (0)  .0 (1  0) n  0  1
n!
n!(1) n (1  1) n  n
J n , n (1)  1
n!( n  n)!

 Contoh : Jika ada 4 vertices dalam Bezier polygon, maka ada


sebuah cubic Bezier polynomial :

J 3, 0 (t )  (1  t ) 3
3!
J 3,1 (t )  t (1  t ) 2  3t (1  t ) 2
1!2!
3! 2
J 3, 2 (t )  t (1  t )  3t 2 (1  t )
2!1!
J 3,3 (t )  t 3

 Jadi polynomial-nya adalah :


Q(t )  (1  t ) 3 Po  3t (1  t ) 2 P1  3t 2 (1  t ) P2  P3 t 3

Computer Aided Design - Djauhar Manfaat - JTP 18


 Beberapa contoh Bezier curves:

 Kita dapat menggunakan piece-wise Bezier curves, dengan


menghasilkan Bezier polynomials untuk setiap segmen dengan
beberapa kondisi/syarat kontinuitas pada sambungan-sambungan.
 Beberapa karakteristik dari Bezier curves:
n(n  1) 2
Q(t )  Po .t o (1  t ) n  P1 .n.t (1  t ) n 1  P2 t (1  t ) n  2  ...  Pn 1 .n.t n 1 (1  t )  Pn .t n (1  t )
2

 Q(0) = Po
Q(1) = Pn

Q ' (t )   n.P0 (1  t ) n1  P1.n(1  t ) n1


n(n  1)
 (n  1) P1.n.t.(1  t ) n  2  2 P2 .t (1  t ) n  2
2

...  (n  1) Pn 1.n.t n  2 (1  t )  Pn 1.n.t n 1  nPnt n 1 (1  t ) 0

 Q’(0) = n (P1 – P0)

Computer Aided Design - Djauhar Manfaat - JTP 19


Q’(1) = n (Pn – Pn-1)

 Kesimpulan:
a) Sebuah Bezier curve selalu mulai dari vertex awal dan
berakhir pada vertex akhir.
b) Slope (gradient) dari curve pada titik-titik awal dan akhir
adalah sama dengan sisi-sisi polygon awal dan akhir (atau
tangent vectors pada titik-titik awal dan akhir sejajar dengan
sisi-sisi polygon awal dan akhir).

Contoh Soal:
Diketahui 4 position vectors (titik-titik) sebagai vertices dari
Bezier polygon, buatlah Bezier curve-nya.
P0 = [1 1] P1 = [2 3] P2 = [4 3] P3 = [3 1]

 Pemecahan:
n
Q(t)   Pi J n,i (t)
i 0

 n  i n i
J n,i (t)   t (1 t)
i 
Disini: n = 3, maka:
 n  n!
   J 3, 0 (t )  (1  t ) 3

 i  i!(n  i)!
J 3,1 (t )  3t (1  t ) 2
J 3, 2 (t )  3t 2 (1  t )
J 3,3 (t )  t 3

Computer Aided Design - Djauhar Manfaat - JTP 20


Jadi:
t J3,0 J3,1 J3,2 J3,3
0 1 0 0 0
0,15 0,614 0,325 0,0574 0,0034
0,35 0,275 0,444 0,239 0,0430
0,50 0,125 0,375 0,375 0,1250
0,65 0,043 0,239 0,444 0,2750
0,85 0,0034 0,0574 0,325 0,6140
1 0 0 0 1

Maka:
Q(0) = P0 = [1 1]
Q(0,15) = 0,614 P0 + 0,325 P1 + 0,0574 P2 + 0,0034 P3
= [1,5 1,765]

Dengan cara yang sama :


Q(0,35) = [2,248 2,367]
Q(0,5) = [2,75 2,5]
Q(0,65) = [3,122 2,36]
Q(0,85) = [3,248 1,75]
Q(1) = P3 = [3 1]
Curve Bezier yang dihasilkan:

P1
P2

Computer Aided Design - Djauhar Manfaat - JTP 21


P0
P3

Computer Aided Design - Djauhar Manfaat - JTP 22

Anda mungkin juga menyukai