Anda di halaman 1dari 8

PRAKTIKUM GRAFIKA KOMPUTER PERTEMUAN 5

NIM : 1818057
NAMA : Febryan Alfaridzi
MATERI : Pembentukan Obyek Garis
TUGAS : Buat sesuai gambar object primitiv dan beri isi nama window menjadi Nama
+ NIM

5.1 Tujuan
1. Praktikan mampu memahami pembuatan primitif objek openGL
2. Praktikan mampu menerapkan primitif objek menggunakan openGL
3. Praktikan mampu membuat gabungan dari obejk primitive menggunakan openGL

5.2 Alat dan Bahan


1. Laptop
2. Visual studio 2013
3. OpenGL
4. Modul Grafika Komputer 2020

5.3 Landasan Teori


A. Definisi Objek Primitif
Objek Primitif adalah interpretasi sejumlah set atau deretan titik pada sebuah
bentuk yang digambar pada layar. Pada OpenGL terdapat 10 macam objek primitif yang
dapat di modifikasi sesuai keinginan.
Objek Primitif terbentuk dari kumpulan titik titik yang berderet. Seperti gambar
pada dibawah ini yang dimana, pada awalnya kumpulan titik titik ini membentuk suatu
garis. Dari garis ini pun akhirnya dapat diolah menjadi objek primitif seperti polygon,
kurva, lingkaran, dsb yang membentuk objek 2D. Bentuk objek primitif ini, dapat
dikembangkan lagi menjadi bentuk objek 3D sesuai dengan keinginan.
Gambar 5.1 Elemen-elemen Pembentuk Objek Grafis

Gambar 5.2 Bentuk dasar objek primitif

5.4 Langkah Langkah Tugas


Source code
Program Lingkaran
ObyekGaris.cpp
#include "ObyekGaris.h"

void main()
{
glutInitWindowPosition(100, 100);
glutInitWindowSize(640, 640);
glutCreateWindow("Febryan Alfaridzi 1818057");
gluOrtho2D(-350, 350, -350, 350);
glutDisplayFunc(gabung);
glutMainLoop();
}
ObyekGaris.h
#include <stdio.h>
#include <glut.h>

void drawLine1()
{
glBegin(GL_POLYGON);
glVertex2d(50, 0);
glVertex2d(100, 50);
glVertex2d(100, 100);
glVertex2d(0, 200);
glVertex2d(-100, 100);
glVertex2d(-100, 50);
glVertex2d(-50, 0);
glVertex2d(0, -50);
glVertex2d(0, -100);
glVertex2d(0, -50);
glVertex2d(-50, 0);
glVertex2d(-100, -50);
glVertex2d(-100, -100);
glVertex2d(0, -200);
glVertex2d(100, -100);
glVertex2d(100, -50);
glEnd();
glFlush();
}

void drawLine2()
{
glBegin(GL_POLYGON);
glVertex2d(250, 0);
glVertex2d(300, 50);
glVertex2d(300, 100);
glVertex2d(200, 200);
glVertex2d(100, 100);
glVertex2d(100, 50);
glVertex2d(150, 0);
glVertex2d(100, -50);
glVertex2d(100, -100);
glVertex2d(200, -200);
glVertex2d(300, -100);
glVertex2d(300, -50);
glEnd();
glFlush();
}
void drawLine3()
{
glBegin(GL_POLYGON);
glVertex2d(-150, 0);
glVertex2d(-100, 50);
glVertex2d(-100, 100);
glVertex2d(-200, 200);
glVertex2d(-300, 100);
glVertex2d(-300, 50);
glVertex2d(-250, 0);
glVertex2d(-300, -50);
glVertex2d(-300, -100);
glVertex2d(-200, -200);
glVertex2d(-100, -100);
glVertex2d(-100, -50);
glEnd();
glFlush();
}
void garisatas1()
{
glBegin(GL_LINE_STRIP);
glColor3f(1, 0, 0);
glVertex2d(0, 100);
glColor3f(1, 0, 0);
glVertex2d(0, 50);
glColor3f(1, 0, 0);
glVertex2d(50, 0);
glColor3f(1, 0, 0);
glVertex2d(100, 50);
glColor3f(1, 0, 0);
glVertex2d(100, 100);
glEnd();
glFlush();
}
void garisatas2()
{
glBegin(GL_LINE_STRIP);
glColor3f(1, 0, 0);
glVertex2d(200, 100);
glColor3f(1, 0, 0);
glVertex2d(200, 50);
glColor3f(1, 0, 0);
glVertex2d(250, 0);
glEnd();
glFlush();
}
void garisatas3()
{
glBegin(GL_LINE_STRIP);
glColor3f(1, 0, 0);
glVertex2d(-200, 100);
glColor3f(1, 0, 0);
glVertex2d(-200, 50);
glColor3f(1, 0, 0);
glVertex2d(-150, 0);
glColor3f(1, 0, 0);
glVertex2d(-100, 50);
glVertex2d(-100, 100);
glEnd();
glFlush();
}

void garisbawah1()
{
glBegin(GL_LINE_STRIP);
glColor3f(1, 0, 0);
glVertex2d(0, -100);
glColor3f(1, 0, 0);
glVertex2d(0, -50);
glColor3f(1, 0, 0);
glVertex2d(-50, 0);
glColor3f(1, 0, 0);
glVertex2d(-100, -50);
glColor3f(1, 0, 0);
glVertex2d(-100, -100);
glEnd();
glFlush();
}

void garisbawah2()
{
glBegin(GL_LINE_STRIP);
glColor3f(1, 0, 0);
glVertex2d(200, -100);
glColor3f(1, 0, 0);
glVertex2d(200, -50);
glColor3f(1, 0, 0);
glVertex2d(150, 0);
glColor3f(1, 0, 0);
glVertex2d(100, -50);
glColor3f(1, 0, 0);
glVertex2d(100, -100);
glEnd();
glFlush();
}

void garisbawah3()
{
glBegin(GL_LINE_STRIP);
glColor3f(1, 0, 0);
glVertex2d(-200, -100);
glColor3f(1, 0, 0);
glVertex2d(-200, -50);
glColor3f(1, 0, 0);
glVertex2d(-250, 0);

glEnd();
glFlush();
}
void gabung()
{
glClear(GL_COLOR_BUFFER_BIT);
drawLine1();
drawLine2();
drawLine3();
garisatas1();
garisatas2();
garisatas3();
garisbawah1();
garisbawah2();
garisbawah3();

}
Tampilan Hasil :

Gambar 5.3 Tampilan Hasil Running


Analisa :
Pada source code untuk gambar 5.3 diatas, di ObyekGaris.h terdapat
#include<stdio.h> yang fungsinya adalah untuk memanggil library yang ada dalam
Microsoft visual studio dan #include<glut.h> yang berfungsi untuk memanggil library
yang ada didalam glut.h
Tabel 5.1 Fungsi OpenGL

No Fungsi Pengertian Contoh Penggunaan

Untuk memnghapus window


glClear
1 glClear dan memberi warna yang telah
(GL_COLOR_BUFFER_BIT);
didefinisikan sebelumnya.

Objek primitif yang berfungsi


glBegin
untuk membuat bentuk dari
2 (GL_POLY glBegin(GL_POLYGON);
beberapa koordinat dengan terisi
GON)
warna.

Objek primitif yang berfungsi


glBegin
untuk membuat bentuk dari
3 (GL_LINE_ glBegin(GL_LINE_STRIP);
beberapa koordinat dengan terisi
STRIP)
warna.

Untuk memnggabar titik pada


glVertex2d
4 koordinat x dan y dengan nilai glVertex2d(200, 100);
(x,y)
satuan double.

Untuk memberi warna suatu


5 glColor3f() glColor3f(0.0, 1.0, 1);
objek.

Untuk mengakhiri gambaran


6 glEnd() glEnd();
dari suatu objek.

7 glFlush() Untuk melakukan rendering. glFlush();

Untuk mengatur proyeksi hasil


gluOrtho2D(-350, 350, - 350,
8 gluOrtho2D eksekusi dan mendefinisikan
350);
besarnya sistem koordinat.
5.5 Kesimpulan
1. Garis dapat dibentuk dari dua buah titik yang saling berhubungan
2. Primitif objek akan selalu digunakan untuk membentuk suatu objek yang rumit lainnya,
karena primitif objek merupakan dasar objek
3. Bentuk primitive grafika dasar contohnya seperti titik, garis, kurva, fill area dan text

Nilai Asisten Lab

Anda mungkin juga menyukai