Download - Laporan 3 Graika Komputer
-
7/23/2019 Laporan 3 Graika Komputer
1/26
LAPORAN PRAKTIKUM GRAFIKA KOMPUTER
MODUL III
TRANSFORMASI DAN ANIMASI OBJEK 2D
Disusun untuk Memenuhi Matakuliah Praktikum Grafika Komputer yang
dibimbing oleh Bapak Heru Wahyu Herwanto
Oleh :
Wildan etyo Budi !"#$%&&'&$((')
*inik +usmawati !"#$%&&'&$((")
" P,- "# off B
UNIVERSITAS NEGERI MALANG
FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
S1 PENDIDIKAN TEKNIK INFORMATIKA
MARET 2014
MODUL 3
-
7/23/2019 Laporan 3 Graika Komputer
2/26
Transformasi dan Animasi Objek 2D
A. TUJUAN
Memahami fungsi.fungsi transformasi !translasi/ rotasi/ skala)0
Memahami dan dapat membuat multi ob1ek menggunakan fungsi transformasi0
Memahami prinsip.prinsip pembuatan animasi ob1ek #D0
Membuat animasi ob1ek #D
B. LATIHAN TRANSFORMASI OBJEK 2 D
Lat!a" 1
2ript
#include
#include
void drawQuads(){
glClear(GL_COLO_!"$_!%&)'
glColor(*+,+,)'
gl&ranslate (-,+,+,)' /osisi d
gl!egin(GL_Q"012)'
gl&ranslate (-,+,+,)' /osisi a
gl3erte45(,.,+,.,)'
gl3erte45 (,.,+*,.,)'
gl&ranslate (-,+,+,)' /osisi b
gl3erte45d (5,.,+*,.,)'gl3erte45d (5,.,+,.,)'
gl&ranslate (-,+,+,)' /osisi c
gl$nd ()'
gllush ()'
6
void 7ain(int argc+ char 88argv){
glut%nit(9argc+argv)'
glut%nit1is/la:;ode(GL"&_1$&= GL"&_2%?GL$ GL"&_G!0)'
glut%nit@indowosition(*,,+*,,)'
glut%nit@indow2iAe(B,+B,)'
glutCreate@indow(D7odul BD)'
gluOrtho51(E5,+5,+E5,+5,)'
glut1is/la:unc(drawQuads )'
glut;ainLoo/()'
6
2
-
7/23/2019 Laporan 3 Graika Komputer
3/26
2reenshoot
Posisi d Posisia/b atau 2
Pen1elasan
Lat!a" 2
2ript
#include
#include
void drawQuads(){
gl!egin(GL_Q"012)'
gl3erte45(,.,+,.,)'
gl3erte45 (,.,+B,.,)'
gl3erte45d (F,.,+B,.,)'
gl3erte45d (F,.,+,.,)'
gl$nd ()'
6
void render(){
glClear(GL_COLO_!"$_!%&)'glColor(*+,+,)' 7erah
drawQuads ()' ota *
gl&ranslate(,+EB,+,)'
glColor(*+*+*)' /utih
drawQuads ()' ota 5
gllush ()'
6
void 7ain(int argc+ char 88argv){
glut%nit(9argc+argv)'
glut%nit1is/la:;ode(GL"&_1$&= GL"&_2%?GL$ GL"&_G!0)'
glut%nit@indowosition(*,,+*,,)'
glut%nit@indow2iAe(B,+B,)'
glutCreate@indow(D7odul BD)'
3
-
7/23/2019 Laporan 3 Graika Komputer
4/26
gluOrtho51(E5,+5,+E5,+5,)'
glut1is/la:unc(render)' /e7anggilan ungsi render
glut;ainLoo/()'
6
2reenshoot
Pen1elasan
Lat!a" 3
2ript
#include
#include
void drawQuads(){
gl!egin(GL_Q"012)'
gl3erte45(,.,+,.,)'
gl3erte45 (,.,+B,.,)'
gl3erte45d (F,.,+B,.,)'
gl3erte45d (F,.,+,.,)'
gl$nd ()'
6
void render(){
glClear(GL_COLO_!"$_!%&)'
glColor(*+,+,)' 7erah
drawQuads ()'
glotate(B-+*+,+,)'(sudut+4+:+A) E> nilai 4:A dirubah
rubah 7enghasilan...glColor(*+*+*)' /utih
4
-
7/23/2019 Laporan 3 Graika Komputer
5/26
drawQuads ()'
gllush ()'
6
void 7ain(int argc+ char 88argv){
glut%nit(9argc+argv)'glut%nit1is/la:;ode(GL"&_1$&= GL"&_2%?GL$ GL"&_G!0)'
glut%nit@indowosition(*,,+*,,)'
glut%nit@indow2iAe(B,+B,)'
glutCreate@indow(D7odul BD)'
gluOrtho51(E5,+5,+E5,+5,)'
glut1is/la:unc(render)'
glut;ainLoo/()'
6
2reenshoot
Gambar dengan fungsi rotasi
gl+otatef!'%/"/$/$)3
Gambar dengan fungsi rotasi
gl+otatef!'%/$/"/$)3
Gambar dengan fungsi rotasi gl+otatef!'%/$/$/")3
Pen1elasan
5
-
7/23/2019 Laporan 3 Graika Komputer
6/26
Lat!a" 4
2ript
#include
#include
void drawQuads(){
gl!egin(GL_Q"012)'
gl3erte45(,.,+,.,)'
gl3erte45 (,.,+B,.,)'
gl3erte45d (F,.,+B,.,)'
gl3erte45d (F,.,+,.,)'
gl$nd ()'
6
void render(){
glClear(GL_COLO_!"$_!%&)'
glColor(*+,+,)' 7erah
drawQuads ()'
gl2cale(5+ *+ ,)'di/erbesar atau di/erecil sebesar...glColor(*+*+*)' /utih
drawQuads ()'
gllush ()'
6
void 7ain(int argc+ char 88argv){
glut%nit(9argc+argv)'
glut%nit1is/la:;ode(GL"&_1$&= GL"&_2%?GL$ GL"&_G!0)'
glut%nit@indowosition(*,,+*,,)'
glut%nit@indow2iAe(B,+B,)'
glutCreate@indow(D7odul BD)'
gluOrtho51(E5,+5,+E5,+5,)'glut1is/la:unc(render)'
glut;ainLoo/()'
6
2reenshoot
Gambargl2alef!#/ "/ $)3
6
-
7/23/2019 Laporan 3 Graika Komputer
7/26
Gambargl2alef!"/ #/ $)3
Gambargl2alef!"/ "/ #)3
Pen1elasan
#. LATIHANANIMASI OBJEK 2D
Lat!a"1
2ript
7
-
7/23/2019 Laporan 3 Graika Komputer
8/26
#include
#include
voiddrawQuads ()
{ gl!egin(GL_Q"012)'
gl3erte45i(,+,)'
gl3erte45i(*,,+,)'
gl3erte45i(*,,+*,,)'
gl3erte45i(,+*,,)'
gl$nd()'
6
voiddis/la:(){
glClear(GL_COLO_!"$_!%&)'
glotate(*+,+,+*)'glotate(angle+4+:+A)'
drawQuads ()'
gllush()'6
voidti7er(intvalue){
tulisan variabel :ang berubah nilain:a disini
glutostedis/la:()'
glut&i7erunc(,+ ti7er+ ,)'
6
void7ain (intargc+ char88argv) {
glut%nit(9argc+argv)'
glut%nit1is/la:;ode(GL"&_1$&= GL"&_2%?GL$ GL"&_G!0)'glut%nit@indowosition(*,,+*,,)'
glut%nit@indow2iAe(HB,+B,)'
glutCreate@indow(D7odul D)'
gluOrtho51(E5,.+5,.+E5B,.+5B,.)'
glut1is/la:unc(dis/la:)'
glut&i7erunc(*,,+ ti7er+ ,)' /anggil ti7er
glut;ainLoo/()'
6
2reenshoot
Pen1elasan
8
-
7/23/2019 Laporan 3 Graika Komputer
9/26
Lat!a" 2
2ript
#include
#include
voiddrawQuads (){
gl!egin(GL_Q"012)'
gl3erte45i(,+,)'
gl3erte45i(*,,+,)'
gl3erte45i(*,,+*,,)'
gl3erte45i(,+*,,)'
gl$nd()'
6
voiddis/la:(){
glClear(GL_COLO_!"$_!%&)'
glotate(*+,+*+,)'glotate(angle+4+:+A)'
drawQuads ()'
gllush()'
6
voidti7er(intvalue){
tulisan variabel :ang berubah nilain:a disini
glutostedis/la:()'
glut&i7erunc(-,+ ti7er+ ,)'
6
void7ain (intargc+ char88argv) {glut%nit(9argc+argv)'
glut%nit1is/la:;ode(GL"&_1$&= GL"&_2%?GL$ GL"&_G!0)'
glut%nit@indowosition(*,,+*,,)'
glut%nit@indow2iAe(HB,+B,)'
glutCreate@indow(D7odul D)'
gluOrtho51(E5,.+5,.+E5B,.+5B,.)'
glut1is/la:unc(dis/la:)'
glut&i7erunc(*,,+ ti7er+ ,)' /anggil ti7er
glut;ainLoo/()'
6
2reenshoot
9
-
7/23/2019 Laporan 3 Graika Komputer
10/26
Pen1elasan
Lat!a" 3
2ript
#include
#include
voiddrawQuads ()
{
gl!egin(GL_Q"012)'
gl3erte45i(,+,)'
gl3erte45i(*,,+,)'
gl3erte45i(*,,+*,,)'
gl3erte45i(,+*,,)'
gl$nd()'
6
voiddis/la:(){
glClear(GL_COLO_!"$_!%&)'
glotate(*+*+,+,)'glotate(angle+4+:+A)'
drawQuads ()'
gllush()'
6
10
-
7/23/2019 Laporan 3 Graika Komputer
11/26
voidti7er(intvalue){
tulisan variabel :ang berubah nilain:a disini
glutostedis/la:()'
glut&i7erunc(*,+ ti7er+ ,)'
6
void7ain (intargc+ char88argv) {
glut%nit(9argc+argv)'
glut%nit1is/la:;ode(GL"&_1$&= GL"&_2%?GL$ GL"&_G!0)'
glut%nit@indowosition(*,,+*,,)'
glut%nit@indow2iAe(HB,+B,)'
glutCreate@indow(D7odul D)'
gluOrtho51(E5,.+5,.+E5B,.+5B,.)'
glut1is/la:unc(dis/la:)'
glut&i7erunc(*,,+ ti7er+ ,)' /anggil ti7er
glut;ainLoo/()'
6
2reenshoot
Pen1elasan
Lat!a" 4
2ript
#include
#include
int4'
11
-
7/23/2019 Laporan 3 Graika Komputer
12/26
voiddrawQuads ()
{
gl!egin(GL_Q"012)'
gl3erte45i(,+,)'gl3erte45i(*,,+,)'
gl3erte45i(*,,+*,,)'
gl3erte45i(,+*,,)'
gl$nd()'
6
voiddis/la:(void)
{
glClear(GL_COLO_!"$_!%&)'
gl&ranslate(4+ ,+ ,)'
drawQuads()'
gllush()'
6void&i7er (intvalue)
{
i(4
-
7/23/2019 Laporan 3 Graika Komputer
13/26
Lat!a" $
2ript
#include
#include
int:'
voiddrawQuads ()
{
gl!egin(GL_Q"012)'
gl3erte45i(,+,)'
gl3erte45i(*,,+,)'
gl3erte45i(*,,+*,,)'
gl3erte45i(,+*,,)'
gl$nd()'
6
voiddis/la:(void){
glClear(GL_COLO_!"$_!%&)'
gl&ranslate(,+ :+ ,)'
drawQuads()'
gllush()'
6
void&i7er (intvalue)
{
i(:
-
7/23/2019 Laporan 3 Graika Komputer
14/26
glut&i7erunc(*,,+ &i7er+ ,)'
glut;ainLoo/()'
6
2reenshoot
Pen1elasan
Lat!a" %
2ript
#include
#include
intA'
voiddrawQuads ()
{
gl!egin(GL_Q"012)'
gl3erte45i(,+,)'
gl3erte45i(*,,+,)'
gl3erte45i(*,,+*,,)'
gl3erte45i(,+*,,)'
gl$nd()'
6
voiddis/la:(void)
{
glClear(GL_COLO_!"$_!%&)'
gl&ranslate(,+ ,+ A)'
drawQuads()'gllush()'
14
-
7/23/2019 Laporan 3 Graika Komputer
15/26
6
void&i7er (intvalue)
{
i(A
-
7/23/2019 Laporan 3 Graika Komputer
16/26
2ript
#include
#include
void drawQuads(){gl!egin(GL_Q"012)'
gl3erte45(EB-.,+E*,.,)'
gl3erte45 (B-.,+E*,.,)'
gl3erte45d (B-.,+,.,)'
gl3erte45d (EB-.,+,.,)'
gl$nd ()'
6
void drawQuads5(){
gl!egin(GL_Q"012)'
gl3erte45(*-,.,+*,.,)'
gl3erte45 (*,.,+*,.,)'gl3erte45d (*,.,+5B,.,)'
gl3erte45d (*-,.,+5B,.,)'
gl$nd ()'
6
void render(){
glClear(GL_COLO_!"$_!%&)'
glColor(*+,+,)' 7erah
drawQuads ()'
gl&ranslate(,+EB,+,)'
glColor(*+*+*)' /utih
drawQuads ()'
glColor(*+,+,)' 7erahanan
drawQuads5 ()'
glotate(*,+,+E*+,)'
glColor(*+*+*)' /utihiri
drawQuads5 ()'
gl&ranslate(,+,+,)'
glColor(*+,+,)' 7erahiri
drawQuads5 ()'
glotate(*,+,+E*+,)'
glColor(*+*+*)' /utihanan
drawQuads5 ()'
gl&ranslate(*5,+E*,,+,)'glColor(*+,+,)' 7erahbawah
drawQuads ()'
gl&ranslate (EF,+,+,)'
glColor(*+,+,)' 7erahbawah
drawQuads ()'
gl&ranslate (EF,+,+,)'
glColor(*+,+,)' 7erahbawah
drawQuads ()'
gl&ranslate(5,+EB,+,)'
glColor(*+*+*)' /utihbawah
drawQuads ()'
16
-
7/23/2019 Laporan 3 Graika Komputer
17/26
gl&ranslate(*5,+,+,)'
glColor(*+*+*)' /utihbawah
drawQuads ()'
gllush ()'
6void 7ain(int argc+ char 88argv){
glut%nit(9argc+argv)'
glut%nit1is/la:;ode(GL"&_1$&= GL"&_2%?GL$ GL"&_G!0)'
glut%nit@indowosition(*,,+*,,)'
glut%nit@indow2iAe(B,+B,)'
glutCreate@indow(D7odul BD)'
gluOrtho51(E5,+5,+E5,+5,)'
glut1is/la:unc(render)'
glut;ainLoo/()'
6
2reenshoot
Pen1elasan
17
-
7/23/2019 Laporan 3 Graika Komputer
18/26
T&'a( 2
2ript
#include
#include
voidsegitiga(){
gl!egin(GL_&%0?GL$2)'
gl3erte45i(E-+,)'
gl3erte45i(-+,)'
gl3erte45i(,+*-)'
gl$nd()'6
voidbintang(){
segitiga()'
glotate(K5+,+,+*)'
segitiga()'
glotate(K5+,+,+*)'
segitiga()'
glotate(K5+,+,+*)'
segitiga()'
glotate(K5+,+,+*)'
segitiga()'glotate(K5+,+,+*)'
6
voidrender(void){
glClear(GL_COLO_!"$_!%&)'
gl&ranslate(5-,+5-,+,)'
bintang()'
glColor(*+,+*)'
gl&ranslate(E-,+E-,+,)'
bintang()'
glColor(*+,+,)'
gl&ranslate(E-,+E-,+,)'
bintang()'
glColor(,+,+*)'
gl2cale(5+5+,)'
gl&ranslate(E,+E,+,)'
bintang()'
glColor(*+*+,)'
gl&ranslate(E,+E,+,)'
bintang()'
glColor(,+*+*)'
gl&ranslate(E,+E,+,)'
bintang()'glColor(*+,+*)'
18
-
7/23/2019 Laporan 3 Graika Komputer
19/26
gl&ranslate(E,+E,+,)'
bintang()'
glColor(*+*+*)'
gl&ranslate(E,+E,+,)'
gl2cale(,.+,.+,)'bintang()'
glColor(*+,+*)'
gl&ranslate(E,+E,+,)'
bintang()'
glColor(,+,+*)'
gl&ranslate(E,+E,+,)'
bintang()'
gllush()'
6
void7ain(intargc+ char88argv){
glut%nit(9argc+argv)'
glut%nit1is/la:;ode(GL"&_1$&= GL"&_2%?GL$ GL"&_G!0)'glut%nit@indowosition(*,,+*,,)'
glut%nit@indow2iAe(B,+B,)'
glutCreate@indow(D7odul D)'
gluOrtho51(E5,+5,+E5,+5,)'
glut1is/la:unc(render)'
glut;ainLoo/()'
6
2reenshoot
Pen1elasan
19
-
7/23/2019 Laporan 3 Graika Komputer
20/26
T&'a( 3
T)a"(*a(.R+ta(
2ript
#include
#include
voiddrawQuad(void){
gl!egin(GL_Q"012)'
gl3erte45i(,+,)'
gl3erte45i(,+5,)'
gl3erte45i(-,+5,)'
gl3erte45i(-,+,)'
gl$nd()'
gllush()'
6
voidrender(void){
glClear(GL_COLO_!"$_!%&)'
gl&ranslate(5,,+E*,,+,)'
glotate(B-+,+,+*)'
drawQuad()'
gllush()'
6
void7ain(intargc+ char88argv){
glut%nit(9argc+argv)'
glut%nit1is/la:;ode(GL"&_1$&= GL"&_2%?GL$ GL"&_G!0)'glut%nit@indowosition(*,,+*,,)'
glut%nit@indow2iAe(B,+B,)'
glutCreate@indow(D7odul D)'
gluOrtho51(E5,+5,+E5,+5,)'
glut1is/la:unc(render)'
glut;ainLoo/()'
6
2reenshoot
Pen1elasan
20
-
7/23/2019 Laporan 3 Graika Komputer
21/26
R+ta(.T)a"(*a(
2ript
#include
#include
voiddrawQuad(void){gl!egin(GL_Q"012)'
gl3erte45i(,+,)'
gl3erte45i(,+5,)'
gl3erte45i(-,+5,)'
gl3erte45i(-,+,)'
gl$nd()'
gllush()'6
voidrender(void){
glClear(GL_COLO_!"$_!%&)'
glotate(B-+,+,+*)'
gl&ranslate(5,,+E*,,+,)'
drawQuad()'
gllush()'
6
void7ain(intargc+ char88argv){
glut%nit(9argc+argv)'
glut%nit1is/la:;ode(GL"&_1$&= GL"&_2%?GL$ GL"&_G!0)'
glut%nit@indowosition(*,,+*,,)'
glut%nit@indow2iAe(B,+B,)'
glutCreate@indow(D7odul D)'
gluOrtho51(E5,+5,+E5,+5,)'
glut1is/la:unc(render)'
glut;ainLoo/()'6
2reenshoot
21
-
7/23/2019 Laporan 3 Graika Komputer
22/26
Pen1elasan
T&'a( 4
2ript
#include
#include
void1raw(){
gl!egin(GL_&%0?GL$2)'
gl3erte45i(,+,)'
gl3erte45i(-,+*,,)'
gl3erte45i(E-,+*,,)'
gl3erte45i(,+,)'
gl3erte45i(-,+E*,,)'
gl3erte45i(E-,+E*,,)'
gl$nd()'6
intr J H,'intn JE*'
voiddis/la:(){
glClear(GL_COLO_!"$_!%&)'
glush;atri4()'
glotate(r+,+,+*)'
1raw()'
glo/;atri4()'
glut2wa/!uers()'
6
voidti7er(inta){
i(nJJ*){rII'
22
-
7/23/2019 Laporan 3 Graika Komputer
23/26
6else{
rEE'
6
i(rJJH,){
nJE*'6elsei(r
-
7/23/2019 Laporan 3 Graika Komputer
24/26
#include
#include
voiddrawivot(){
gl!egin(GL_&%0?GL$2)'gl3erte45i(,+55,)'
gl3erte45i(E*,+5B,)'
gl3erte45i(*,+5B,)'
gl$nd()'6
voiddrawaru7(){
glLine@idth(5)'
gl!egin(GL_L%?$2)'
gl3erte45i(,+,)'
gl3erte45i(,+5,,)'
gl$nd()'6
ints J,'
int7 J E,85'inth J ,85'
voiddis/la:(){
glClear(GL_COLO_!"$_!%&)'
glColor(*+*+,)'
glush;atri4()'
or(inti J,'i
-
7/23/2019 Laporan 3 Graika Komputer
25/26
glut%nit@indowosition(*,,+*,,)'
glut%nit@indow2iAe(HB,+B,)'
glutCreate@indow(D7odul D)'
gluOrtho51(E5,+5,+E5B,+5B,)'
glut1is/la:unc(dis/la:)'glut&i7erunc(*,,,+ti7er+,)'
glut;ainLoo/()'
6
2reenshoot
Pen1elasan
E. KESIMPULAN
25
-
7/23/2019 Laporan 3 Graika Komputer
26/26
F. DAFTAR RUJUKAN
http:44glprogramming02om4red42hapter$#0html diakses tanggal 5 februari
#$"'
Modul & praktikum grafika komputer 6ni7ersitas *egeri Malang
8,+9*O+M9- D9* 9*-M9- OB;