Anda di halaman 1dari 7

LAPORAN

KOMPUTER GRAFIS

“Menggambar Lingkaran pada OpenGL”

Untuk Memenuhi Salah Satu Tugas

Mata Kuliah Komputer Grafis

Dosen Pembimbing: Prof. Dr. Abd. Muis Mappalotteng, M.Pd., M.T.


Dyah Vitalocca, ST., M.Pd.

Disusun Oleh :
Nama : Syahrul
NIM : 1929041056
Kelas : PTIK-C 19

PRODI PENDIDIKAN TEKNIK INFORMATIKA DAN KOMPUTER


JURUSAN TEKNIK INFORMATIKA DAN KOMPUTER
FAKULTAS TEKNIK
UNIVERSITAS NEGERI MAKASSAR
2021
1. Judul
Menggambar Lingkaran pada OpenGl di aplikasi Code Block

2. Hari/Tanggal
Kamis/20 Mei 2021

3. Tujuan
Praktikum ini bertujuan untuk menjelaskan cara menggambar di OpenGl .

4. Landasan Teori
Percobaan ini bertujuan untuk bisa membuat atau menggambar lingkaran di Open GL
pada aplikasi codeblock.
5. Alat dan bahan
 Laptop
 Buku Komputer Grafis
6. Hasil praktikum
1) program pada codeblock
#include "stdlib.h"
#include "gl/glut.h"
#include "math.h"
const double PI = 3.141592653589793;
int i;
void back(){
glBegin(GL_QUADS);
glColor3f(0,0,0);
glVertex2d (-150,150);
glVertex2d(150,150);
glVertex2d(150,-150);
glVertex2d (-150,-150);
glEnd();
}
void lingkaran(int radius, int jumlah_titik, int
x_tengah, int y_tengah) {
glBegin(GL_POLYGON);
for (i=0;i<=360;i++){
float sudut=i*(2*PI/jumlah_titik);
float x=x_tengah+radius*cos(sudut);
float y=y_tengah+radius*sin(sudut);
glVertex2f(x,y);
}
glEnd();
}
void Draw() {
glClear(GL_COLOR_BUFFER_BIT);
back();
glColor3f(1.0, 0.0, 0.0); //merah
lingkaran(30,70,0,0);
glColor3f(0.0, 1.0, 0.0); //hijau
lingkaran(20,70,40,40);
glColor3f(0.0, 0.0, 1.0); //biru
lingkaran(40,70,-60,-60);
glColor3f(1.0, 1.0, 1.0); //putih
lingkaran(15,70,70,70);
glColor3ub(191, 111, 245); //ungu
lingkaran(10,70,95,95);
glFlush();
}
int main(int argc, char **argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(300, 300);
glutInitWindowPosition(200, 200);
glutCreateWindow("Lingkaran");
gluOrtho2D(-150., 150., -150., 150.);
glutDisplayFunc(Draw);
glutMainLoop();
return 0;
}

2) Gambar hasil program pada code block


7. Fungsi masing-masing script

Baris ke-1 Header stdlib.h mendefinisikan empat jenis variabel, beberapa makro, dan
berbagai fungsi untuk menjalankan fungsi umum.
Baris ke-2 <GL/glut> berfungsi untuk import library grafik dari opengl

Baris ke-3 Merupakan header untuk fungsi matematika. Fungsi yang ada didalamnya
antara lain : sqrt() : merupakan fungsi untuk menghitung akar dari suatu
bilangan. pow() : fungsi ini utuk menghitung hasil dari perpangkatan
bilangan.

Baris ke-4 const double PI = 3.141592653589793; sebagai pendeklarasian konstanta


Baris ke-5 int i; mendeklarasikan variable i yang bertipe integer
Baris ke-6 Void Bag adalah item unik yang memberikan akses ke Void Vault. Saat
berada di inventory pemain, Void Bag secara otomatis menyimpan item yang
terkumpul, kemudian membuka untuk mengawali eksekusi program
Baris ke-7 glBegin(GL_QUADS); sebagai batasi simpul sebagai lingkaran independen.
Simpul 4 ⁢ n - 3, 4 ⁢ n - 2, 4 ⁢ n - 1, dan 4 ⁢ n mendefinisikan lingkaran
n. N 4 digambar.
Baris ke-8 glColor3f(0,0,0); yaitu memberi warna dasar pada backgroun di open gl
Baris ke-9 glVertex2d (-150,150); yaitu suatu fungsi untuk menggambar titik pada
koordinat x dan y, dengan nilai satuan berupa double
Baris ke-10 glVertex2d (-150,150); yaitu suatu fungsi untuk menggambar titik pada
koordinat x dan y, dengan nilai satuan berupa double
Baris ke-11 glVertex2d (-150,150); yaitu suatu fungsi untuk menggambar titik pada
koordinat x dan y, dengan nilai satuan berupa double
Baris ke-12 glVertex2d (-150,150); yaitu suatu fungsi untuk menggambar titik pada
koordinat x dan y, dengan nilai satuan berupa double
Baris ke-13 glEnd();} yaitu untuk mengakhiri program glcolor dan menutup program
voidbag
Baris ke-14 void lingkaran yaitu prosedur untuk mendeklarasikan lingkaran dan
membuka program
Baris ke-15 glBegin(GL_POLYGON); yaitu Menggambar satu poligon cembung. Simpul
1 sampai N mendefinisikan poligon ini.
Baris ke-16 for (i=0;i<=360;i++){ yaitu mendeklarasikan variabel i yang bertipe for
Baris ke-17 float sudut=i*(2*PI/jumlah_titik); yaitu mendeklarasikan variabel i yang
bertipe for
Baris ke-18 float x=x_tengah+radius*cos(sudut); yaitu mendeklarasikan variabel x yang
bertipe float
Baris ke-19 float y=y_tengah+radius*sin(sudut); yaitu mendeklarasikan variabel y yang
bertipe float
Baris ke-20 glVertex2f(x,y); yaitu suatu fungsi untuk menggambar titik pada koordinat x
dan y, dengan nilai satuan berupa double
Baris ke-21 } yaitu untuk menutup program for
Baris ke-22 glEnd(); untuk mengakhiri program for
Baris ke-23 } yaitu untuk menutup program void lingkaran
Baris ke-24 void Draw() { adalah fungsi yang akan dieksekusi berkali-kali oleh program,
dan baru akan berhenti ketika Display Window ditutup atau tombol Stop
ditekan kemudian membuka program
Baris ke-25 glClear(GL_COLOR_BUFFER_BIT); yaitu untuk Menunjukkan buffer yang
saat ini diaktifkan untuk penulisan warna.
Baris ke-26 back();untuk mengembalikan referensi ke elemen terakhir dalam vektor.
Baris ke-27 glColor3f(1.0, 0.0, 0.0); yaitu pemberian warna pada objek, ini menggunakan
warna merah
Baris ke-28 lingkaran(30,70,0,0); yaitu untuk menentukan ukuran dan posisi objek
lingkaran tersebut
Baris ke-29 glColor3f(0.0, 1.0, 0.0); yaitu pemberian warna pada objek, ini menggunakan
warna hijau
Baris ke-30 lingkaran(20,70,40,40); yaitu untuk menentukan ukuran dan posisi objek
lingkaran tersebut
Baris ke-31 glColor3f(0.0, 0.0, 1.0); yaitu pemberian warna pada objek, ini menggunakan
warna biru
Baris ke-32 lingkaran(40,70,-60,-60); yaitu untuk menentukan ukuran dan posisi objek
lingkaran tersebut
Baris ke-33 glColor3f(1.0, 1.0, 1.0); yaitu pemberian warna pada objek, ini menggunakan
warna putih
Baris ke-34 lingkaran(15,70,70,70); yaitu untuk menentukan ukuran dan posisi objek
lingkaran tersebut
Baris ke-35 glColor3ub(191, 111, 245); yaitu pemberian warna pada objek, ini
menggunakan warna ungu
Baris ke-36 lingkaran(10,70,95,95); yaitu untuk menentukan ukuran dan posisi objek
lingkaran tersebut
Baris ke-37 glFlush(); yaitu bergungsi sebagai sintaks untuk memastikan gambar bisa di
eksekusi.
Baris ke-38 } yaitu menutup program void draw
Baris ke-39 int main(int argc, char **argv) yaitu mendeklarasikan main sebagai integer
dan char kemudian membuka program yang akan dieksekusi
Baris ke-40 glutInit(&argc, argv); untuk mengatur pembuatan windows
Baris ke-41 glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); Fungsi ini digunakan
untuk menentukan apakah akan menggunakan model pewarnaan RGB
Baris ke-42 glutInitWindowSize(300, 300); menentukan ukuran windows yang
digunakan
Baris ke-43 glutInitWindowPosition(200, 200); menentukan posisi windows yang akan
ditampilkan
Baris ke-44 glutCreateWindow("Lingkaran"); membuat nama windows yaitu lingkaran
Baris ke-45 gluOrtho2D(-150., 150., -150., 150.); yaitu suatu fungsi untuk mengatur
proyeksi hasil eksekusi dan mendefinisikan besarnya sistem koordinat
dengan urutan kiri-kanan dan bawah-atas
Baris ke-46 glutDisplayFunc(Draw); digunakan untuk memanggil fungsi display atau
method untuk membuat objek primitive.
Baris ke-47 glutMainLoop();adalah event yang menandakan pemrosesan glut terjadi.
Baris ke-48 return 0; kepada pemanggilnya, karena int main() bertipe integer, maka
secara teori fungsi yang dikembalikan juga harus ada dan bertipe integer.
Baris ke-49 } yaitu menutup program yang telah dieksekusi

Anda mungkin juga menyukai