Anda di halaman 1dari 16

LAPORAN PRAKTIKUM 3

MEMBUAT PRIMITIF GIOMETRI II


Dosen Mata Kuliah
Alifyah NSH, S.pd., M.pd

OLEH :
SRI ERFIANA
PTIK F 2018

PRODI PENDIDIKAN TEKNIK INFORMATIKA DAN KOMPUTER


JURUSAN PENDIDIKAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS NEGERI MAKASSAR
2020
PRAKTIKUM 3
PENGENALAN PRIMITIF GIOMETRI II
A. Tujuan praktikum
1. Mahasiswa mampu menggambar segiempat
2. Mahasiswa mampu menggambar segitiga
3. Mahasiswa mampu menggambar segienam
4. Mahasiswa mampu menggunakan reshape callback function
B. Dasar Teori
1. Segi Empat
Dalam geometri bidang Euklides, segi empat (bahasa Inggris:
quadrilateral) adalah poligon dengan empat sisi dan empat sudut. .Segi empat
dapat berupa segi empat sederhana (tidak berpotongan dengan diri sendiri)
atau kompleks (berpotongan dengan diri sendiri). Segi empat sederhana
terbagi menjadi segi empat cembung (convex) atau cekung (concave).
Gambar segiempat seperti dibawah ini.
2. Segitiga
Segitiga adalah bangun datar yang dibentuk oleh tiga garis lurus yang
saling berpotongan. istilah quadrangle digunakan, dengan analogi
dengan triangle (segitiga). Segitiga dibentuk oleh 3 buah titik sudut yang
letaknya tidak segaris dihubungkan. Untuk setiap segitiga selalu berlaku sifat-
sifat yaitu; jumlah panjang dua sisi selalu lebih besar daripada panjang sisi
segitiga; jumlah sudut-sudut sebuah segitiga adalah 180 derajat; sudut
terbesar adalah sudut yang menghadap sisi terpanjang, sedangkan sudut
terkecil adalah sudut yang menghadap sisi terpendek; besar sudut luar sama
dengan jumlah dua sudut yang tidak berpenglurus dengan sudut luar tersebut,
gambar segitiga seperti dibawah ini;
3. Segienam
Dalam geometri, segi enam (heksagon) adalah sebuah segibanyak
(poligon) dengan enam sisi dan enam titik sudut. Sebuah segienam beraturan
memiliki simbol Schläfli. Suatu segienam beraturan adalah suatu segienam
dengan panjang sisi dan besar sudut dalam yang sama. Sudut dalam pada
segienam beraturan adalah 120°. Segienam beraturan memiliki 6 simetri garis
dan 6 simetri putar. Diagonal terpanjang dari segienam beraturan, yang
menghubungkan dua titik sudut berseberangan, panjangnya adalah dua kali
panjang satu sisinya. Jadi, segienam beraturan ini dapat dibagi menjadi enam
segitiga sama sisi. Sejumlah segienam dapat disusun bersama-sama dengan
cara mempertemukan tiga segienam pada masing-masing salah satu sudutnya.
Susunan ini digunakan lebah madu untuk membuat sarangnya, karena
susunan segienam merupakan bentuk yang paling efisien dari segi ruang dan
bahan bangunan. Contoh gambar segienam sebagai berikut:

4. Reshape callback function


Reshape callback function digunakan agar gambar tetap berada
proporsi yang tetap. GlVierport (X, Y, Width, Height) bertanggung jawab
untuk melakukan setting view port dari suatu window, yaitu bagian dari
window yang digunakan untuk menggambar. Reshape callback function juga
digunakan untuk mengatur transformasi proyeksi. berikut mengilustrasikan
situasinya.
C. PRAKTIKUM
1. Program Praktikum
2. Hasil
3. Analisis sintsks perbaris
a. #include <GL/glut.h> (adalah header yang digunakan untuk program
grafis menggunakan Open Gl-Glut)
b. void garis {(Disini tempat untuk menggaris yaitu suatu fungsi untuk
membuat kode program untuk menghasilkan suatu garis)
c. glBegin (GL_POLYGON) (digunakan untuk menggambar titik. Posisi
titik yang akan digambar harus ditulis antara glBegin(GL_POLYGON)
dan glEnd(). Polygon sendiri digunakan untuk menggambar suatu gambar
dengan segi banyak.
d. glBegin (GL_TRIANGLES) (digunakan untuk menggambar titik. Posisi
titik yang akan digambar harus ditulis antara glBegin(GL_TRIANGLES)
dan glEnd(). Polygon sendiri digunakan untuk menggambar dalam bentuk
segitiga.
e. glColor3f (0.0,0.0,0.5)adalah warna dari titk yang akan digambar. Format
yang digunakan adalah format RGB
f. glVertex2f adalah sebuah sintaks yang dipergunakan untuk
menggambarkan object 2 dimensi dengan koordinat (x,y,). Sumbu X
negatif berarti ke kiri, positif berarti ke kanan. Sumbu Y positif berarti ke
atas, negatif ke bawah. Sedangkan untuk sumbu Z, tanda positif berarti di
depan layar (di luar layar), jadi tidak terlihat di layar. Jadi sumbu Z harus
menggunakan tanda negatif agar objek dapat dilihat.
g. glEnd(); merupakan sintaks penutup
h. void resize (int w, int h ) { (membuat fungsi yang akan dipanggil saat
reshape)
i. glViewport (0, 0, (GLsizei)h, (GLsizei)h) ; adalah sebagai fungsi yang
dipergunakan untuk melakukan setting pada viewport dari suatu window
yaitu bagian dari window yang digunakan untuk menggambar.
j. if else (adalah suatu fungsi untuk melakukan suatu fungsi percabangan)
k. void display(void) { (Fungsi ini digunakan untuk menentukan apakah
akan menggunakan model pewarnaan RGBA atau indek warna. Dengan
fungsi ini juga bisa menentukan apakah akan menggunakan windows
buffer single atau double.)
l. glClear(GL_COLOR_BUFFER_BIT);void display(void) { (Fungsi ini
digunakan untuk menentukan apakah akan menggunakan model
pewarnaan RGBA atau indek warna. Dengan fungsi ini juga bisa
menentukan apakah akan menggunakan windows buffer single atau
double.)
m. glutSwapBuffers(); (untuk menukar bagian belakang buffer menjadi
buffer layar (screen buffer)
n. int main (int argc,char** argv){ (Fungsi ini menginisialisasi glut dan
memproses argument command_line yg disertakan(jika ada). Fungsi ini
harus di panggil pertama kali sebelum pemanggilan terhadap fungsi-
fungsi yang lain.)
o. glutInit(&argc,argv); (glutInit merupakan fungsi yang mengizinkan
sebuah aplikasi untuk mendapatkan argument command line(pada cmd)
dan system inisialisasi)
p. glutInitDisplayMode (GLUT_DOUBLE|GLUT_RGB); (Fungsi ini
digunakan untuk menentukan apakah akan menggunakan model
pewarnaan RGBA atau indek warna.)
q. glutInitWindowPosition(100,100); (Fungsi ini menentukan letak window
dengan patokkannya ialah pada window kiri atas.)
r. glutInitWindowSize(640,480); (fungsi ini menspesifikasikan ukuran
window yang dibuat dalam pixel.)
s. glutCreateWindow("praktikum 3"); (fungsi untuk membuat window
dalam konteks openGL, dan akan menghasilkan identitas atau judul
window tersebut)
t. glClearColor(1.0,1.0,0.1,0.0); (sebagai pembaca warna yang akan
ditampilkan atau Mendefinisikan warna dari windows yang dibuat dengan
warna (1,1,1) yaitu warna putih)
u. gluOrtho2D (-1.,1.,-1.,1)); (mendefinisikan besarnya sistem koordinat
dengan range sumbu x adalah [-1,1] dan range untuk sumbu y adalah [-
1,1])
v. glutIdleFunc(display); Fungsi ini memanggil fungsi lain yg menentukan
konten dari windows yg telah di buat sebelumnya.)
w. glutReshapeFunc(resize); adalah sebuah fungsi yang dipergunakan untuk
memanggil fungsi callback reshape yaitu Agar gambar tetap berada pada
proporsi yang tepat.
x. glutMainLoop(); (Fungsi untuk event perulangan, display pada callback
akan terus ditampilkan selama aplikasi itu tidak ditutup)
y. return0; (fungsi main () berakhir dan mengembalikan kode yang
mengikuti instruksi tersebut, dalam kasus ini . Ini merupakan cara yang
paling sering digunakan untuk mengakhiri program.
D. LATIHAN
1. Program latihan 1
Hasil

Analisis sintaks perbaris


a. #include <GL/glut.h> (adalah header yang digunakan untuk program
grafis menggunakan Open Gl-Glut).
b. void garis {(Disini tempat untuk menggaris yaitu suatu fungsi untuk
membuat kode program untuk menghasilkan suatu garis)
c. glBegin (GL_TRIANGLE_STRIP) (digunakan untuk Menggambar
sekelompok verteks yang terhubung menjadi segitiga. Sebuah segitiga
baru didefinisikan untuk setiap titik yang diberikan setelah dua verteks
pertama dan seterusnya.)
d. glBegin (GL_TRIANGLE_FAN) (digunakan untuk menggambar
sekelompok verteks yang terhubung menjadi segitiga dengan menarik
garis tambahan dari verteks yang pertama).
e. glBegin (GL_QUAD_STRIP) (digunakan untuk menggambar sekelompok
verteks terhubung quadrilaterals. Satu segiempat didefinisikan untuk
setiap empat pasang verteks yang diberikan setelah pasangan pertama).
f. glColor3f (0.0,0.0,0.5)adalah warna dari titk yang akan digambar. Format
yang digunakan adalah format RGB
g. glVertex2f adalah sebuah sintaks yang dipergunakan untuk
menggambarkan object 2 dimensi dengan koordinat (x,y,). Sumbu X
negatif berarti ke kiri, positif berarti ke kanan. Sumbu Y positif berarti ke
atas, negatif ke bawah. Sedangkan untuk sumbu Z, tanda positif berarti di
depan layar (di luar layar), jadi tidak terlihat di layar. Jadi sumbu Z harus
menggunakan tanda negatif agar objek dapat dilihat.
h. glEnd(); merupakan sintaks penutup
i. void resize (int w, int h ) { (membuat fungsi yang akan dipanggil saat
reshape)
j. glViewport (0, 0, (GLsizei)h, (GLsizei)h) ; adalah sebagai fungsi yang
dipergunakan untuk melakukan setting pada viewport dari suatu window
yaitu bagian dari window yang digunakan untuk menggambar.
k. if else (adalah suatu fungsi untuk melakukan suatu fungsi percabangan)
l. void display(void) { (Fungsi ini digunakan untuk menentukan apakah
akan menggunakan model pewarnaan RGBA atau indek warna. Dengan
fungsi ini juga bisa menentukan apakah akan menggunakan windows
buffer single atau double.)
m. glClear(GL_COLOR_BUFFER_BIT);void display(void) { (Fungsi ini
digunakan untuk menentukan apakah akan menggunakan model
pewarnaan RGBA atau indek warna. Dengan fungsi ini juga bisa
menentukan apakah akan menggunakan windows buffer single atau
double.)
n. glutSwapBuffers(); (untuk menukar bagian belakang buffer menjadi
buffer layar (screen buffer)
o. int main (int argc,char** argv){ (Fungsi ini menginisialisasi glut dan
memproses argument command_line yg disertakan(jika ada). Fungsi ini
harus di panggil pertama kali sebelum pemanggilan terhadap fungsi-
fungsi yang lain.)
p. glutInit(&argc,argv); (glutInit merupakan fungsi yang mengizinkan
sebuah aplikasi untuk mendapatkan argument command line(pada cmd)
dan system inisialisasi)
q. glutInitDisplayMode (GLUT_DOUBLE|GLUT_RGB); (Fungsi ini
digunakan untuk menentukan apakah akan menggunakan model
pewarnaan RGBA atau indek warna.)
r. glutInitWindowPosition(100,100); (Fungsi ini menentukan letak window
dengan patokkannya ialah pada window kiri atas.)
s. glutInitWindowSize(640,480); (fungsi ini menspesifikasikan ukuran
window yang dibuat dalam pixel.)
t. glutCreateWindow("praktikum 3"); (fungsi untuk membuat window
dalam konteks openGL, dan akan menghasilkan identitas atau judul
window tersebut)
u. glClearColor(1.0,1.0,0.1,0.0); (sebagai pembaca warna yang akan
ditampilkan atau Mendefinisikan warna dari windows yang dibuat dengan
warna (1,1,1) yaitu warna putih)
v. gluOrtho2D (-20.0,20.0,-15.0,15.0); (mendefinisikan besarnya sistem
koordinat dengan range sumbu x adalah [20.0,20.0] dan range untuk
sumbu y adalah [-15.0,15.0])
w. glutIdleFunc(display); Fungsi ini memanggil fungsi lain yg menentukan
konten dari windows yg telah di buat sebelumnya.)
x. glutReshapeFunc(resize); adalah sebuah fungsi yang dipergunakan untuk
memanggil fungsi callback reshape yaitu Agar gambar tetap berada pada
proporsi yang tepat.
y. glutMainLoop(); (Fungsi untuk event perulangan, display pada callback
akan terus ditampilkan selama aplikasi itu tidak ditutup)
z. return0; (fungsi main () berakhir dan mengembalikan kode yang
mengikuti instruksi tersebut, dalam kasus ini . Ini merupakan cara yang
paling sering digunakan untuk mengakhiri program.
2. Program Latihan 2
Hasil

Titik yang digambar di millimeter book


Analisis sintaks perbaris
a. #include <GL/glut.h> (adalah header yang digunakan untuk program
grafis menggunakan Open Gl-Glut).
b. void garis {(Disini tempat untuk menggaris yaitu suatu fungsi untuk
membuat kode program untuk menghasilkan suatu garis)
c. glBegin (GL_TRIANGLES) (digunakan untuk menggambar titik. Posisi
titik yang akan digambar harus ditulis antara glBegin(GL_TRIANGLES)
dan glEnd(). Polygon sendiri digunakan untuk menggambar dalam bentuk
segitiga
d. glColor3f (0.0,0.0,0.5)adalah warna dari titk yang akan digambar. Format
yang digunakan adalah format RGB
e. glVertex2f adalah sebuah sintaks yang dipergunakan untuk
menggambarkan object 2 dimensi dengan koordinat (x,y,). Sumbu X
negatif berarti ke kiri, positif berarti ke kanan. Sumbu Y positif berarti ke
atas, negatif ke bawah. Sedangkan untuk sumbu Z, tanda positif berarti di
depan layar (di luar layar), jadi tidak terlihat di layar. Jadi sumbu Z harus
menggunakan tanda negatif agar objek dapat dilihat.
f. glEnd(); merupakan sintaks penutup
g. void resize (int w, int h ) { (membuat fungsi yang akan dipanggil saat
reshape)
h. glViewport (0, 0, (GLsizei)h, (GLsizei)h) ; adalah sebagai fungsi yang
dipergunakan untuk melakukan setting pada viewport dari suatu window
yaitu bagian dari window yang digunakan untuk menggambar.
i. if else (adalah suatu fungsi untuk melakukan suatu fungsi percabangan)
j. void display(void) { (Fungsi ini digunakan untuk menentukan apakah
akan menggunakan model pewarnaan RGBA atau indek warna. Dengan
fungsi ini juga bisa menentukan apakah akan menggunakan windows
buffer single atau double.)
k. glClear(GL_COLOR_BUFFER_BIT);void display(void) { (Fungsi ini
digunakan untuk menentukan apakah akan menggunakan model
pewarnaan RGBA atau indek warna. Dengan fungsi ini juga bisa
menentukan apakah akan menggunakan windows buffer single atau
double.)
l. glutSwapBuffers(); (untuk menukar bagian belakang buffer menjadi
buffer layar (screen buffer)
m. int main (int argc,char** argv){ (Fungsi ini menginisialisasi glut dan
memproses argument command_line yg disertakan(jika ada). Fungsi ini
harus di panggil pertama kali sebelum pemanggilan terhadap fungsi-
fungsi yang lain.)
n. glutInit(&argc,argv); (glutInit merupakan fungsi yang mengizinkan
sebuah aplikasi untuk mendapatkan argument command line(pada cmd)
dan system inisialisasi)
o. glutInitDisplayMode (GLUT_DOUBLE|GLUT_RGB); (Fungsi ini
digunakan untuk menentukan apakah akan menggunakan model
pewarnaan RGBA atau indek warna.)
p. glutInitWindowPosition(100,100); (Fungsi ini menentukan letak window
dengan patokkannya ialah pada window kiri atas.)
q. glutInitWindowSize(640,480); (fungsi ini menspesifikasikan ukuran
window yang dibuat dalam pixel.)
r. glutCreateWindow("praktikum 3"); (fungsi untuk membuat window
dalam konteks openGL, dan akan menghasilkan identitas atau judul
window tersebut)
s. glClearColor(1.0,1.0,0.1,0.0); (sebagai pembaca warna yang akan
ditampilkan atau Mendefinisikan warna dari windows yang dibuat dengan
warna (1,1,1) yaitu warna putih)
t. gluOrtho2D (-20.0,20.0,-15.0,15.0); (mendefinisikan besarnya sistem
koordinat dengan range sumbu x adalah [20.0,20.0] dan range untuk
sumbu y adalah [-15.0,15.0])
u. glutIdleFunc(display); Fungsi ini memanggil fungsi lain yg menentukan
konten dari windows yg telah di buat sebelumnya.)
v. glutReshapeFunc(resize); adalah sebuah fungsi yang dipergunakan untuk
memanggil fungsi callback reshape yaitu Agar gambar tetap berada pada
proporsi yang tepat.
w. glutMainLoop(); (Fungsi untuk event perulangan, display pada callback
akan terus ditampilkan selama aplikasi itu tidak ditutup)
x. return0; (fungsi main () berakhir dan mengembalikan kode yang
mengikuti instruksi tersebut, dalam kasus ini . Ini merupakan cara yang
paling sering digunakan untuk mengakhiri program.
E. KESIMPULAN

Anda mungkin juga menyukai