TRANSFORMASI GRAFIK 3 DIMENSI

Slides:



Advertisements
Presentasi serupa
TRANSFORMASI GEOMETRI
Advertisements

Transformasi geometri.  Pemindahan objek (titik, garis, bidang datar) pada bidang.  Perubahan yang (mungkin) terjadi: Kedudukan / letak Arah Ukuran.
Grafika Komputer (TIZ10) Grafik 3D Disusun oleh Teady Matius Prodi Teknik Informatika – Universitas Bunda Mulia.
Grafika Komputer (TIZ10)
Bab 5 TRANSFORMASI.
Koordinat Kartesius, Koordinat Tabung & Koordinat Bola
GERAK PARABOLA Coba kalian amati gerak setengah parabola yang di alami oleh benda di samping ini!
Grafika Komputer (TIZ10)
Apakah Bilangan Kompleks itu ?
Transformasi Geometri 2 Dimensi
KOMPUTER GRAFIKA TRANSFORMASI 2D (ROTASI DAN SHEARING)
Grafika Komputer (Defiana Arnaldy, M.Si)
KOMPUTER GRAFIKA TRANSFORMASI 2D (TRANSLASI DAN SKALA)
Vektor Ruang Dimensi 2 dan Dimensi 3
Koordinat Kartesius, Koordinat Bola, dan Koordinat Tabung
Mata Kuliah Komputer Grafik Orientasi Perkuliahan
BAB I TEGANGAN DAN REGANGAN
PENGERTIAN SUDUT JURUSAN
MATA KULIAH MATEMATIKA LANJUT 1 [KODE/SKS : IT / 2 SKS]
TRANSFORMASI 2D.
INTEGRAL GARIS SKALAR DAN INTEGRAL PERMUKAAN
PERTEMUAN 5 Dosen VENY TRIYANA ANDIKA SARI
VEKTOR 2.1.
BAB 1 Vektor.
Transformasi Geometri Sederhana
Irma Damayantie, S.Ds., M.Ds Prodi Desain Interior - FDIK
Transformasi Geometri Sederhana
Apakah Bilangan Kompleks itu ?
Transformasi 2D Grafika Komputer.
GEOMETRI Probolinggo SMK Negeri 2 SUDUT DAN BIDANG.
OPERASI VEKTOR Pertemuan 3
PERKALIAN VEKTOR Di sini ditanyakan apa yang dimaksud dengan fisika.
Anna Dara Andriana, S.Kom., M.Kom
Transformasi geometri
PIXEL, WARNA, SISTEM KOORDINAT & BAHASA PROGRAM
Apakah Bilangan Kompleks itu ?
AYO BELAJAR TRANSFORMASI GEOMETRI !!!
Matematika Dasar 3 “Trigonometri”
PERPUTARAN ( ROTASI ) Selanjutnya P disebut pusat rotasi dan  disebut sudut rotasi.  > 0 jika arah putar berlawanan arah putaran jarum jam.
P. XIV RUANG-RUANG VEKTOR EUCLIDEAN
VEKTOr Fisika I 4/30/2018.
1.4 SISTEM KOORDINAT EMPAT BIDANG
Transformasi 2D.
KOMPUTER GRAFIKA TRANSFORMASI 2D (TRANSLASI DAN SKALA)
Transformasi (Refleksi).
TRANSFORMASI OBJEK (TRANSFORMASI AFFINE 2D DAN 3D)
MENGGAMBAR DENGAN PIXEL (KONVERSI SCAN)
Nur Cahya Setyaningsih
KINEMATIKA PARTIKEL.
TRANSFORMASI 2 DIMENSI Oleh : Hieronimus Edhi Nugroho, M.Kom
Transformasi 2 Dimensi.
Grafika Komputer Transformasi 2 Dimensi.
Irma Damayantie, S.Ds., M.Ds. Prodi Desain Interior - FDIK
Kinematika Mempelajari tentang gerak benda tanpa memperhitungkan penyebab gerak atau perubahan gerak. Asumsi bendanya sebagai benda titik yaitu ukuran,
DIMENSI DUA transformasi TRANSLASI.
Kelas 1.C Nina Ariani Juarna Ghia Mugia Wilujeng Faujiah Lulu Kamilah.
Transformasi 3D Grafika Komputer Defiana Arnaldy, M.Si
TRANSFORMASI GRAFIK 2 DIMENSI
AFLICH YUSNITA F, M.Pd. STKIP SILIWANGI BANDUNG
Ihr Logo Dasar teori dan algoritma grafika komputer.
Peta Konsep. Peta Konsep C. Penerapan Matriks pada Transformasi.
Transformasi Geometri 2 Dimensi
VEKTOR.
Peta Konsep. Peta Konsep A. Macam-Macam Transformasi.
Transformasi Geometri 2 Dimensi
ULANGAN SELAMAT BEKERJA Mata Pelajaran : Matematika
Peta Konsep. Peta Konsep C. Transformasi Geometris.
Irma Damayantie, S.Ds., M.Ds. Prodi Desain Interior - FDIK
KINEMATIKA PARTIKEL.
KOMPUTER GRAFIKA TRANSFORMASI 2D (TRANSLASI DAN SKALA)
Transcript presentasi:

TRANSFORMASI GRAFIK 3 DIMENSI BAB IV TRANSFORMASI GRAFIK 3 DIMENSI Program S1 Teknik Informatika Sekolah Tinggi Teknologi Nurul Jadid Oleh : Moh. Furqan, S. Kom.

4.1 Grafik 3 Dimensi Grafik 3D  media 2 dimensi dengan membentuk sumbu semu z. Teori perspektif sumbu semu z negatif  garis tegak lurus kedepan pandangan (foreshortening) digambar miring dengan 2 mode : Mode Cavalier ; sudut miring 45° terhadap sumbu x dan tidak ada pemendekan garis yang menghadap ke depan pandangan pembaca. Mode Cabinet ; sudut miring 30° terhadap sumbu x dan panjang garis yang menghadap ke depan pembaca digambar setengah dari ukuran aslinya. Y Y Kubus Cavalier Kubus Cabinet X (0,0,0) (0,0,0) X Z Z Komputer Grafik

4.1 Grafik 3 Dimensi Untuk menggambarkan obyek 3D kedalam media 2D  transfer koordinat dengan aturan : Koordinat X : (X3D) = X0 + X – Z Koordinat Y : (Y3D) = Y0 – Y + Z div 2 Jadi yang digambar dalam media 2D adalah koordinat (X3D, Y3D) seperti penggambaran grafik 2 dimensi perlu menentukan koordinat titik tengah monitor (X0,Y0) secara otomatis  FormCreate : procedure TForm1.FormCreate(Sender: TObject); begin X0 := ClientWidth div 2; Y0 := ClientHeight div 2; With StringGrid1 do Begin Cells[0,0]:=‘X’; Cells[0,1]:=‘Y’; Cells[0,2]:=‘Z’; end; Komputer Grafik

4.1 Grafik 3 Dimensi Untuk menggambarkan bangun 3 dimensi  procedure tak standar untuk mengubah koordinat 3D menjadi 2D dan menggambar titik 3 dimensi pada media 2 dimensi : procedure UbahKoordinat3D(var X3D,Y3D : integer; X,Y,Z : integer); begin X3D := X0 + X – Z; Y3D := Y0 - X + Z div 2; end; Sehingga menggambarkan sebuah titik 3D pada media 2D : Canvas.Pixels[X3D, Y3D] := clColor; jika X = 0, Y = 0, Z = 0 maka tergambar : Y 30° X (0,0,0) Z Komputer Grafik

4.1 Grafik 3 Dimensi Sumbu koordinat 3D dibuat dengan menetapkan sumbu X dan Y (2D), sedang sumbu Z ditentukan sebagai garis diagonal kiri bawah. Sistem sumbu 3D secara otomatis dengan Procedure FormPaint : procedure TForm1.FormPaint(Sender: TObject); var k : Integer; begin for k := 1 to X0 do X3D := X0 + k; Y3D := Y0; Canvas.Pixels[X3D,Y3D]:= clBlue; end; for k := 1 to Y0 do X3D := X0; Y3D := Y0-k; Canvas.Pixels[X3D,Y3D]:= clRed; for k := 1 to X0 do begin X3D := X0 - k; Y3D := Y0+k div 2; Canvas.Pixels[X3D,Y3D]:= clGreen; end; Komputer Grafik

4.1 Grafik 3 Dimensi Menggambar garis / bangun ruang yang bersegi : Procedure tak standar UbahKoordinat3D yang mengubah koordinat X,Y dan Z dalam 3 dimensi menjadi koordinat X3D dan Y3D dalam 2 dimensi Procedure standar membuat garis : Canvas.MoveTo(X0 + X3D1, Y0 – Y3D1); Canvas.LineTo(X0 + X3D2, Y0 – Y3D2); untuk membuat sebuah garis 3D dari titik (x1,y1,z1) ke titik (x2,y2,z2) : procedure TForm1.Garis3D(Sender: TObject; x1,y1,z1,x2,y2,z2 : integer); begin UbahKoordinat3D(X3D1, Y3D1, x1,y1,z1); UbahKoordinat3D(X3D2, Y3D2, x2,y2,z2); end; Komputer Grafik

4.2 Transformasi Geometri 3 Dimensi Transformasi 3D dikelompokkan dalam 2 kategori : Transformasi Dasar Transformasi Lanjut Dalam transformasi 3D dilakukan penyeragaman ordo (ukuran) matrik, yaitu untuk obyek bangun ruang (4 x N), untuk operasi (4 x 4) dan untuk obyek titik (4 x 1) : Matrik titik : Matrik Trans : Matrik Obyek : X Y Z 1 T11 T21 T13 T14 T21 T22 T23 T24 T31 T22 T33 T34 T41 T42 T43 T44 X1 X2 X3 X4 … Xn Y1 Y2 Y3 Y4 … Yn Z1 Z2 Z3 Z4 … Zn 1 1 1 1 … 1 Komputer Grafik

4.2 Transformasi Geometri 3 Dimensi 4.2.1 Konsep Obyek 3 Dimensi Konsep Obyek 3 dimensi dibatasi pada bangun ruang yang bersegi. Type obyek 3 dimensi adalah : Matrik4N = array[1..4.1..N] of integer; variabel obyek dan N didefinisikan sebagai variabel global, data obyek diisikan dalam sel-sel komponen StringGrid. Data dipanggil dengan procedure tak standar : procedure TForm1.MatrikObyek3D(Sender: TObject; var Obyek3D : Matrik4N); var i, j : integer; begin N := StrtoInt(eBanyakSegi.Text); for i := 1 to 3 do for j := 1 to N do Obyek3D[i,j] := StrToInt(StringGrid1.Cells[j, i-1]); for j := 1 to N do Obyek3D[4,j] := 1; end; Komputer Grafik

4.2 Transformasi Geometri 3 Dimensi Menggambar obyek  mentransfer koordinat obyek 3D menjadi koordinat obyek 2D dan procedure standar gambar garis 2D: procedure TForm1.UbahKoordinatObyek3D(var Obyek2D : Matrik3N; Obyek3D : Matrik4N); var i : integer; begin for i := 1 to N do Obyek2D[1,i] := X0 + Obyek3D[1,i] – Obyek3D[3,i]; Obyek2D[2,i] := Y0 - Obyek3D[2,i] + Obyek3D[3,i] div 2; end; Komputer Grafik

4.2 Transformasi Geometri 3 Dimensi procedure TForm1.GambarObyek3D(Sender : TObject; Obyek3D : Matrik4N); var i : integer; begin UbahKoordinatObyek3D(Obyek2D, Obyek3D); for i := 1 to N-1 do Canvas.MoveTo(trunc(Obyek2D[1,i], trunc(Obyek2D[2,i],)); Canvas.LineTo(trunc(Obyek2D[1,i+1], trunc(Obyek2D[2,i+1],)); end; Canvas.MoveTo(trunc(Obyek2D[1,N], trunc(Obyek2D[2,N],)); Canvas.LineTo(trunc(Obyek2D[1,1], trunc(Obyek2D[2,1],)); Komputer Grafik

4.2 Transformasi Geometri 3 Dimensi 4.2.2 Perkalian Dua Matrik Dalam 3 Dimensi Ada 2 jenis perkalian matrik : Perkalian matrik 4 x 4 dengan matrik 4 x 4 (operator transformasi, bagi transformasi lanjut) Perkalian matrik 4 x 4 dengan matrik x N (operator dengan obyek, bagi transformasi dasar/lanjut) procedure perkalian matrik antar operator : procedure MatrikKaliTransformasi3D(var Tr1 : Matrik44; Tr2 : Matrik44); var i, j,k : integer; Hasil : matrik44; begin for i := 1 to 4 do for k := 1 to 4 do begin Hasil [i,k]:=0; for j := 1 to 4 do Hasil[i,k] := Hasil[i,k] + Tr1[i,j] * Tr2[j.k]; end; Tr1 := Hasil; end; Komputer Grafik

4.2 Transformasi Geometri 3 Dimensi procedure MatrikKaliTransformasiObyek3D(var Obyek : Matrik4N; Tr : Matrik44); var i, j,k : integer; Hasil : matrik4N; begin for i := 1 to 4 do for k := 1 to N do begin Hasil [i,k] := 0; for j := 1 to 4 do Hasil[i,k] := Hasil[i,k] + Tr[i,j] * Obyek[j.k]; end; Obyek := Hasil; end; Type matrik44 = array[1..4,1..4] of real ditulis sebagai type global. Komputer Grafik

4.2 Transformasi Geometri 3 Dimensi 4.2.3 Transformasi Geometri Dasar 3 Dimensi Translasi 3D (Tv3) : Perpindahan obyek dengan vektor arah v = ai + bj + ck a = sumbu x, b = sumbu y, c = sumbu z sifat : x’ = x + a, y’ = y + b dan z’ = z + c persamaan matrik : P’ = Tv3 o P 4 x 1 4 x 4 4 x 1 matrik translasi : Tv3 = 1 0 0 a 0 1 0 b 0 0 1 c 0 0 0 1 Y X (0,0,0) Z v = ai + bj + ck P (x,y,z) P’ (x’,y’,z’) Komputer Grafik

4.2 Transformasi Geometri 3 Dimensi Procedure matrik translasi : procedure MatrikTranslasi3D(var Tv3 : Matrik44; a,b,c: real); begin Tv3[1,1] := 1 ; Tv3[1,2] := 0 ; Tv3[1,3] := 0 ; Tv3[1,4] := a ; Tv3[2,1] := 0 ; Tv3[2,2] := 1 ; Tv3[2,3] := 0 ; Tv3[2,4] := b ; Tv3[3,1] := 0 ; Tv3[3,2] := 0 ; Tv3[3,3] := 1 ; Tv3[3,4] := c ; Tv3[4,1] := 0 ; Tv3[4,2] := 0 ; Tv3[4,3] := 0 ; Tv3[4,4] := 1 ; end; Sedangkan procedure translasi : procedure TForm1.btTranslasiObyek3DClick(Sender : TObject; var Obyek3D : Matrik4N; a,b,c: real); Begin a:=StrToFloat(eA.Text); b:= StrToFloat(eB.Text); c := StrToFloat(eC.Text); MatrikObyek3D(Sender,Obyek3D); MatrikTranslasi3D (Tv3,a,b,c); MatrikKaliTransformasiObyek3D(Obyek3D,Tv3); GambarObyek3D(Sender,Obyek3D); End; Komputer Grafik

4.2 Transformasi Geometri 3 Dimensi Rotasi Terhadap Sumbu Z (Rz,α) : memutar obyek pada bidang XY dengan titik putar (0,0,0) dengan menganggap koordinat z tetap. sudut putar  satuan radian. rotasi 2D pada bidang XY: x’ = x cos α – y sin α y’ = x sin α + y cos α z’ = z matrik rotasi: Rz, α = cos α -sin α 0 0 sin α cos α 0 0 0 0 1 0 0 0 0 1 Y X (0,0,0) Z α P (x,y,z) P’ (x’,y’,z’) Komputer Grafik

4.2 Transformasi Geometri 3 Dimensi Procedure matrik rotasi: procedure MatrikRotasiSumbuZ(var R3 : Matrik44; sudut: real); Var radian : real; Begin radian := sudut / 180 * 3.14; R[1,1] := cos(radian); R[1,2] := -sin(radian); R[1,3] := 0 ; R[1,4] := 0; R[2,1] := sin(radian); R[2,2] := cos(radian); R[2,3] := 0 ; R[2,4] := 0; R[3,1] := 0 ; R[3,2] := 0 ; R[3,3] := 1 ; R[3,4] := 0; R[4,1] := 0 ; R[4,2] := 0 ; R[4,3] := 0 ; R[4,4] := 1; end; Sedangkan procedure rotasi : procedure TForm1.btRotasiSumbuZObyek3DClick(Sender : TObject; var Obyek3D : Matrik4N; sudut: real); sudut:=StrToFloat(eSudut.Text); MatrikObyek3D(Sender,Obyek3D); MatrikRotasiSumbuZ (R3,sudut); MatrikKaliTransformasiObyek3D(Obyek3D,R3); GambarObyek3D(Sender,Obyek3D); End; Komputer Grafik

4.2 Transformasi Geometri 3 Dimensi Rotasi Terhadap Sumbu Y (Ry,α) : memutar obyek pada bidang ZX dengan titik putar (0,0,0) dengan menganggap koordinat y tetap. sudut putar  satuan radian. rotasi 2D pada bidang ZX : z’ = z cos α – x sin α y’ = y x’ = z sin α + x cos α matrik rotasi: Ry, α = cos α 0 sin α 0 0 1 0 0 -sin α 0 cos α 0 0 0 0 1 Y X (0,0,0) Z α P (x,y,z) P’ (x’,y’,z’) Komputer Grafik

4.2 Transformasi Geometri 3 Dimensi Procedure matrik rotasi: procedure MatrikRotasiSumbuY(var R3 : Matrik44; sudut: real); Var radian : real; Begin radian := sudut / 180 * 3.14; R[1,1] := cos(radian); R[1,2] := 0; R[1,3] := sin(radian); R[1,4] := 0; R[2,1] := 0; R[2,2] := 1; R[2,3] := 0; R[2,4] := 0; R[3,1] := -sin(radian); R[3,2] := 0; R[3,3] := cos(radian); R[3,4] := 0; R[4,1] := 0; R[4,2] := 0; R[4,3] := 0; R[4,4] := 1; end; Sedangkan procedure rotasi : procedure TForm1.btRotasiSumbuYObyek3DClick(Sender : TObject; var Obyek3D : Matrik4N; sudut: real); sudut:=StrToFloat(eSudut.Text); MatrikObyek3D(Sender,Obyek3D); MatrikRotasiSumbuY (R3,sudut); MatrikKaliTransformasiObyek3D(Obyek3D,R3); GambarObyek3D(Sender,Obyek3D); End; Komputer Grafik

4.2 Transformasi Geometri 3 Dimensi Rotasi Terhadap Sumbu X (Rx,α) : memutar obyek pada bidang ZY dengan titik putar (0,0,0) dengan menganggap koordinat x tetap. sudut putar  satuan radian. rotasi 2D pada bidang YZ : x’ = x y’ = y cos α – z sin α z’ = y sin α + z cos α matrik rotasi: Rx, α = 1 0 0 0 0 cos α - sin α 0 0 sin α cos α 0 0 0 0 1 Y X (0,0,0) Z α P (x,y,z) P’ (x’,y’,z’) Komputer Grafik

4.2 Transformasi Geometri 3 Dimensi Procedure matrik rotasi: procedure MatrikRotasiSumbuX(var R3 : Matrik44; sudut: real); Var radian : real; Begin radian := sudut / 180 * 3.14; R[1,1] := 1; R[1,2] := 0; R[1,3] := 0; R[1,4] := 0; R[2,1] := 0; R[2,2] := cos(radian);R[2,3] := -sin(radian); R[2,4] := 0; R[3,1] := 0; R[3,2] := sin(radian);R[3,3] := cos(radian); R[3,4] := 0; R[4,1] := 0; R[4,2] := 0; R[4,3] := 0; R[4,4] := 1; end; Sedangkan procedure rotasi: procedure TForm1.btRotasiSumbuXObyek3DClick(Sender : TObject; var Obyek3D : Matrik4N; sudut: real); sudut:=StrToFloat(eSudut.Text); MatrikObyek3D(Sender,Obyek3D); MatrikRotasiSumbuX(R3,sudut); MatrikKaliTransformasiObyek3D(Obyek3D,R3); GambarObyek3D(Sender,Obyek3D); End; Komputer Grafik

4.2 Transformasi Geometri 3 Dimensi Scaling Terhadap Titik (0,0) So,sx,sy,sz : mengubah ukuran obyek. sx = sumbu x, sy = sumbu y, sz = sumbu z. sifat scaling : x’ = sx.x y’ = sy.y z’ = sz.z matrik scaling: So,sx,sy,sz = sx 0 0 0 0 sy 0 0 0 0 sz 0 0 0 0 1 Y X (0,0,0) Z P (x,y,z) P’ (x’,y’,z’) So,sx,sy,sz Komputer Grafik

4.2 Transformasi Geometri 3 Dimensi Procedure matrik scaling: procedure MatrikScaling3D(var S3 : Matrik44; sx,sy,sz: real); Begin S[1,1] := sx; S[1,2] := 0; S[1,3] := 0; S[1,4] := 0; S[2,1] := 0; S[2,2] := sy; S[2,3] := 0; S[2,4] := 0; S[3,1] := 0; S[3,2] := 0; S[3,3] := sz; S[3,4] := 0; S[4,1] := 0; S[4,2] := 0; S[4,3] := 0; S[4,4] := 1; end; Sedangkan procedure scaling: procedure TForm1.btScalingObyek3DClick(Sender : TObject; var Obyek3D : Matrik4N; sx,sy,sz: real); sx:=StrToFloat(eX.Text); sy:=StrToFloat(eY.Text); sz:=StrToFloat(eZ.Text); MatrikObyek3D(Sender,Obyek3D); MatrikScaling3D(S3,sx,sy,sz); MatrikKaliTransformasiObyek3D(Obyek3D,S3); GambarObyek3D(Sender,Obyek3D); End; Komputer Grafik

4.2 Transformasi Geometri 3 Dimensi 4.2.4 Transformasi 3 Dimensi Lanjut Transformasi 3D lanjut merupakan gabungan beberapa beberapa transformasi 3D dasar. Tilting (Ti) : Rotasi terhadap sumbu X diikuti dengan rotasi terhadap sumbu Y. Ti = Ry,αy . Rx,αx procedure Tilting (var Ti : Matrik44; Rx,Ry: Matrik44; SudutX, sudutY : real); Begin Sudut:=StrToFloat(eSudut.Text); MatrikRotasiSumbuX(Ry,SudutY); MatrikRotasiSumbuX(Rx,SudutX); MatrikKaliTransformasi3D(Ry,Rx); Ti := Ry; End; procedure RotasiTiltingObyek3D (var Obyek : Matrik4N; R: Matrik44); Var Rx, Ry, sudutX, sudutY : real; MatrikObyek3D(Obyek,N); Tilting(Ti, Rx, Ry, SudutX, sudutY); MatrikKaliTransformasiObyek3D(Obyek,Ti); GambarObyek3D(Sender,Obyek3D); Komputer Grafik

4.2 Transformasi Geometri 3 Dimensi Align Vektor V : Rotasi terhadap sumbu X diikuti dengan rotasi terhadap sumbu Y. Ti = Ry,αy . Rx,αx Komputer Grafik