Dokumen tersebut membahas tentang translasi vektor dan representasinya dalam perspektif konvensional secara analitis dan grafis serta dalam perspektif komputer menggunakan bahasa pemrograman BASIC dan C++. Beberapa contoh soal translasi vektor dan segiempat serta segitiga diberikan beserta penyelesaiannya secara analitis, grafis, dan representasinya dalam kode program BASIC dan C++.
1. Hal.1 | S N S
TA.2016-2017 Sm.4
TIF314 Grafika Komputer (3 sks)
Dosen: Ir. Sihar, M.T.
Program studi T. Informatika
Fak. Teknologi Informasi
Bandung - 2014
Referensi:
[1] Miller, A.R. Turbo BASIC Programmes for Scientists and Engineers. Longman Higher Education.
1987.
[2] Simamora, S.N.M.P. “Diktat Dasar Komputer dan Pemrograman”. Dept. Sistem Komputer, Fak.
Teknik. ITHB. Bandung. 2002.
[3] Simamora, S.N.M.P. “Diktat Grafika Komputer”. Program studi T. Informatika, Fak. Teknologi
Informasi. Univ. BALE. Bandung. 2013.
TRANSLASI (Tranformasi Letak Sisi)
Misalkan sebuah A
7
4
; di-translasikan sebesar 3-ssp arah kanan horizontal, maka dapat
diselesaikan sebagai berikut:
Dalam Perspektif-Konvensional (secara analitik)
Arah kanan secara horizontal sebesar 3-ssp, maka:
Jika K adalah pertambahan nilai terhadap absis dan ordinat vektor tersebut setelah
ditranslasikan, maka:
ordinat A = y’ = yA + K; K = 0;
y’ = 7 + 0 = 7;
absis A = x’ = xA + K; K=3;
x’ = 4 + 3 = 7;
didapatkan setelah translasi yakni: A’
7
7
;
Dimodelkan sebagai berikut:
2. Hal.2 | S N S
Dalam Persepektif-Komputer (BASIC)
Asumsi dengan skalabilitas=50 (pengali);
Kode-warna=15 ⇒ Bright-White;
Kode-warna=12 ⇒ Light-Red;
BASIC: source-code dotve.bas
cls
clear
screen 12
x=4
y=7
K=50
Ax=x*K
Ay=y*K
pset(Ax,Ay),15
ax=(x+3)*K
ay=(y+0)*K
pset(ax,ay),12
Tampilan jalannya program:
Dalam Perspektif-Komputer (C++)
Merujuk pada data asumsi pada BASIC, maka dituliskan sebagai berikut:
C++: source-code dotve.cpp
#include<iostream.h>
#include<conio.h>
void main()
{
int x=4,y=7,ax,ay;
clrscr();
gotoxy(x,y); cout << "A";
ax=(x+3);
ay=(y+0);
gotoxy(ax,ay); cout << "A'";
getch();
clrscr();
}
3. Hal.3 | S N S
Tampilan jalannya program:
Contoh-1:
Sebuah segiempat yang dibangun dari empat vektor, masing-masing yaitu: A=
2
2
; B=
2
7
;
C=
6
9
; D=
6
4
;
Jika dilakukan translasi dilakukan sebesar 2-ssp arah kanan horisontal, lalu dilanjutkan 1-ssp arah
atas vertikal.
Persoalan ini dapat diselesaikan sebagai berikut:
Dalam Perspektif-Konvensional (secara analitik)
Jika salah-sau vektor dalam sebuah model 2D dilakukan translasi, maka vektor-vektor yang lain
akan mengikuti
Cari A’:
2-ssp arah kanan horisontal:
A’x = 2 + 2 = 4;
A’y = 2 + 0 = 2;
Selanjutnya, 1-ssp arah atas vertikal:
A’x = 4 + 0 = 4;
A’y = 2 + 1 = 3;
maka, A’=
3
4
;
Cari B’:
2-ssp arah kanan horisontal:
B’x = 7 + 2 = 9;
B’y = 2 + 0 = 2;
Selanjutnya, 1-ssp arah atas vertikal:
B’x = 9 + 0 = 9;
B’y = 2 + 1 = 3;
maka, B’=
3
9
;
Cari C’:
2-ssp arah kanan horisontal:
C’x = 7 + 2 = 9;
C’y = 5 + 0 = 5;
Selanjutnya, 1-ssp arah atas vertikal:
C’x = 9 + 0 = 9;
5. Hal.5 | S N S
line(Dx,Dy)-(Ax,Ay)
Ax=((ax+2)+0)*K
Ay=((ay+0)+1)*K
Bx=((bx+2)+0)*K
By=((by+0)+1)*K
Cx=((cx+2)+0)*K
Cy=((cy+0)+1)*K
Dx=((dx+2)+0)*K
Dy=((dy+0)+1)*K
line(Ax,Ay)-(Bx,By),13
line(Bx,By)-(Cx,Cy),13
line(Cx,Cy)-(Dx,Dy),13
line(Dx,Dy)-(Ax,Ay),13
Tampilan jalannya program:
Dalam Perspektif-Komputer (C++) dengan pendekatan ‘dot’ (titik-berantai)
Merujuk pada data asumsi pada BASIC, maka dituliskan sebagai berikut:
C++: source-code lineve.cpp
#include<iostream.h>
#include<conio.h>
void main()
{
int x=2,y=2;
clrscr();
for(int i=0;i<7;i=i+1) {
x=x+1;
gotoxy(x,y); cout << "*";
}
for(i=0;i<5;i=i+1) {
y=y+1;
gotoxy(x,y); cout << "*";
}
x=2;
for(i=0;i<7;i=i+1) {
x=x+1;
gotoxy(x,y); cout << "*";
}
x=2;
y=1;
for(i=0;i<6;i=i+1) {
y=y+1;
gotoxy(x,y); cout << "*";
}
x=4;
6. Hal.6 | S N S
y=3;
for(i=0;i<7;i=i+1) {
x=x+1;
gotoxy(x,y); cout << "*";
}
for(i=0;i<5;i=i+1) {
y=y+1;
gotoxy(x,y); cout << "*";
}
x=4;
for(i=0;i<7;i=i+1) {
x=x+1;
gotoxy(x,y); cout << "*";
}
x=4;
y=2;
for(i=0;i<6;i=i+1) {
y=y+1;
gotoxy(x,y); cout << "*";
}
getch();
clrscr();
}
Tampilan jalannya program:
Contoh-2:
Sebuah segitiga yang dibangun dari tiga vektor, masing-masing yaitu: A=
2
6
; B=
3
9
; C=
5
7
;
Jika dilakukan translasi 90o arah .
Persoalan ini dapat diselesaikan sebagai berikut:
Dalam Perspektif-Konvensional (secara grafis)
Dimodelkan sebagai berikut:
A’ = A =
2
6
;
B’ =
5
5
;
C’ =
3
3
;
7. Hal.7 | S N S
Dalam Persepektif-Komputer (BASIC)
Asumsi dengan skalabilitas=65 (pengali);
Kode-warna=10 ⇒ Light-Green;
BASIC: source-code linev3.bas
cls
clear
screen 12
k=65
ax=6*k
ay=2*k
bx=9*k
by=3*k
cx=7*k
cy=5*k
line(ax,ay)-(bx,by)
line(bx,by)-(cx,cy)
line(cx,cy)-(ax,ay)
Ax=ax
Ay=ay
Bx=5*k
By=5*k
Cx=3*k
Cy=3*k
line(Ax,Ay)-(Bx,By),10
line(Bx,By)-(Cx,Cy),10
line(Cx,Cy)-(Ax,Ay),10
Tampilan jalannya program:
Dalam Perspektif-Komputer (C++) dengan pendekatan ‘line’
Merujuk pada data asumsi pada BASIC, maka dituliskan sebagai berikut:
C++: source-code linev3.cpp
#include<graphics.h>
#include<conio.h>
void main()
{
int ax,ay,bx,by,cx,cy,Ax,Ay,Bx,By,Cx,Cy,k=65;
int gd=DETECT,gm;
initgraph(&gd,&gm,"C:/tc/bgi");
setcolor(7);
8. Hal.8 | S N S
ax=6*k;
ay=2*k;
bx=9*k;
by=3*k;
cx=7*k;
cy=5*k;
line(ax,ay,bx,by);
line(bx,by,cx,cy);
line(cx,cy,ax,ay);
setcolor(10);
Ax=ax;
Ay=ay;
Bx=5*k;
By=5*k;
Cx=3*k;
Cy=3*k;
line(Ax,Ay,Bx,By);
line(Bx,By,Cx,Cy);
line(Cx,Cy,Ax,Ay);
getch();
closegraph();
restorecrtmode();
}
Tampilan jalannya program:
Contoh-3:
Buatlah distribusi titik dengan konstruksi-algoritma sebagai berikut:
A=
6
4
;
translasi-1: 7-ssp arah kanan horisontal;
dilanjutkan translasi-2: 5-ssp atas vertikal;
dilanjutkan translasi-3: 4-ssp atas horisontal;
Modelkan dalam Perspektif Komputer (BASIC) dengan pendekatan ‘dot’ (titik-berantai).
Solusi:
Asumsi dengan skalabilitas=75 (pengali);
Kode-warna=6 ⇒ Brown;
9. Hal.9 | S N S
BASIC: source-code lin33.bas
cls
clear
screen 12
k=35
ax=4
ay=6
color 6
for i=1 to 7 step 1
pset(ax*k,ay*k)
ax=ax+1
next i
for i=1 to 5 step 1
pset(ax*k,ay*k)
ay=ay+1
next i
for i=1 to 4 step 1
pset(ax*k,ay*k)
ax=ax+1
next i
Tampilan jalannya program: