Transformasi2D PDF
Transformasi2D PDF
Achmad Basuki
Nana Ramadijanti
Achmad Basuki, Nana Ramadijanti - Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Materi
Struktur titik dan vektor
Perubahan struktur titik ke vektor
Perubahan struktur vektor ke titik
Translasi
Scalling
Rotasi
Perkalian Matrik
Komposisi Transformasi
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Struktur Titik dan Vektor
typedef struct {
Struktur data float x,y;
dari titik 2D } point2D_t;
typedef struct {
Struktur data float v[3];
dari vektor 2D } vector2D_t;
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Perubahan Titik dan Vektor
titik 2D
v[1] x
Point2Vector v[2] y Vector2Point
v[3] 1
vektor 2D
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Point2Vector
Fungsi ini digunakan untuk memindahkan tipe data titik
menjadi tipe data vektor. Hal ini sangat berguna untuk
operasional matrik yang digunakan dalam melakukan
transformasi dan pengolahan matrik pada grafika komputer.
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Transformasi 2D
Translasi
Scaling
Rotasi
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Matrik Transformasi 2D
Matrik transformasi adalah matrik yang
membuat sebuah obyek mengalami perubahan
baik berupa perubahan posisi, maupun
perubahan ukuran.
Matrik transformasi 2D dinyatakan dalam
ukuran 3x3, dimana kolom ke-3 digunakan untuk
menyediakan tempat untuk proses translasi.
a11 a12 a13
a a22 a23
21
a31 a32 a33
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Translasi
Translasi adalah perpindahan obyek dari titik P ke
titik P secara linier.
x = x + dx
P(x,y)
y = y + dy
Model Matrik:
dy
x' x dx
P(x,y) dx y ' = y + dy
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Matrik Transformasi
dari Translasi 2D
Proses translasi
dengan
v1 1 0 d x v1
menggunakan v = 0 1 d v
definisi vektor2D
dapat dituliskan
2 y 2
dengan v3 0 0 1 v3
1 0 d x Matrik
0 1 d Transformasi
y dari
0 0 1 Translasi
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Implementasi Matrik
Tranformasi Untuk Translasi
matrix2D_t createIdentity(void) {
matrix2D_t u;
int i,j;
for (i=0;i<3;i++) {
for(j=0;j<3;j++) u.m[i][j]=0.;
u.m[i][i]=1.;
}
return u;
}
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Scaling
Scaling m adalah perpindahan obyek dari titik P ke
titik P, dimana jarak titik P adalah m kali titik P
y
P(x,y)
x = mx x
y = my y
P(x,y) my.y
mx.x x
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Matrik Transformasi
dari Scaling 2D
Proses scaling
dengan
v1 mx 0 0 v1
menggunakan v = 0 my
0 v2
definisi vektor2D
dapat dituliskan
2
dengan v3 0 0 1 v3
mx 0 0 Matrik
0 my 0 Transformasi
dari Scaling
0 0 1
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Implementasi Matrik
Tranformasi Untuk Scaling
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Rotasi
Rotasi adalah perpindahan obyek dari titik P ke titik P,
yang berupa pemindahan berputar sebesar sudut
y
P(x,y)
x = x cos() - y sin()
y = x sin() + y cos()
P(x,y)
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Matrik Transformasi
dari Rotasi
Proses Rotasi
dengan v1 cos( ) sin( ) 0 v1
menggunakan v = sin( ) cos( ) 0 v
definisi vektor2D 2 2
dapat dituliskan v3 0 0 1 v3
dengan
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Perkalian Matrik
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Implementasi Perkalian
Matrik dengan Matrik
matrix2D_t operator * (matrix2D_t a, matrix2D_t b)
{
matrix2D_t c;//c=a*b
int i,j,k;
for (i=0;i<3;i++) for (j=0;j<3;j++) {
c.m[i][j]=0;
for (k=0;k<3;k++)
c.m[i][j]+=a.m[i][k]*b.m[k][j];
}
return c;
}
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Perkalian
Matrik dengan Vektor
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Implementasi Perkalian
Matrik dengan Vektor
vector2D_t operator * (matrix2D_t a, vector2D_t b)
{
vector2D_t c;//c=a*b
int i,j;
for (i=0;i<3;i++) {
c.v[i]=0;
for (j=0;j<3;j++)
c.v[i]+=a.m[i][j]*b.v[j];
}
return c;
}
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Komposisi Transformasi
Komposisi transformasi adalah
menggabungkan beberapa tranformasi,
sehingga dapat menghasilkan bentuk
transformasi yang lebih kompleks
Komposisi tranformasi dapat dilakukan
dengan mengalikan matrik-matrik
transformasi
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Contoh Komposisi Tranformasi
Rotasi()
Translasi(d,0)
Komposisi transformasi dinyatakan dengan :
Rotasi().Translasi(d,0)
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Contoh Komposisi Tranformasi
Rotasi()
Translasi(d,0)
Translasi(d,0). Rotasi()
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Tugas 1 Grafika Komputer
Menggambarkan Orbit Bumi dan Bulan
Achmad Basuki, Nana Ramadijanti, Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS)
Tugas 2 Grafika Komputer
Menggambar Gerakan Tutup Gelas Terbuka