Anda di halaman 1dari 23

PRAKTIKUM GRAFIKA KOMPUTER

Pertemuan ke-3 (Kurva)

Gea Davids Khalik


2206013

Jurusan Ilmu Komputer


Program Studi Teknik Informatika
Institut Teknologi Garut
Jl. Mayor Syamsu No. 1 Jayaraga Garut 44151 Indonesia

I. PENDAHULUAN

Dalam matematika, ilmu komputer, dan berbagai bidang lainnya, konsep kurva memiliki
peran yang penting. Kurva merujuk pada gambaran visual atau deskripsi matematis dari jalur yang
ditempuh oleh suatu objek atau fenomena seiring waktu atau ruang. Kurva digunakan untuk
menggambarkan berbagai jenis pergerakan, relasi, dan perubahan dalam berbagai konteks, termasuk
geometri, fisika, ilmu data, desain grafis, dan pemodelan komputer.

Kurva dapat memiliki berbagai karakteristik dan bentuk, dari yang sederhana hingga yang
sangat kompleks. Mereka dapat digunakan untuk menggambarkan pergerakan benda fisik, seperti
lintasan planet di tata surya, pergerakan partikel dalam fisika nuklir, atau jalur pesawat terbang di
langit. Selain itu, kurva juga digunakan dalam pemodelan dan analisis data untuk mencari pola atau
tren dalam data, seperti kurva pertumbuhan ekonomi atau kurva penyebaran penyakit.

Kurva sering digambarkan dengan persamaan matematis, yang memungkinkan kita untuk
memahami dan memprediksi perilaku mereka. Dalam konteks pemrograman dan desain grafis, kurva
juga digunakan untuk membuat animasi, grafik, dan visualisasi yang menarik.

Pentingnya pemahaman tentang kurva tidak terbatas pada dunia ilmiah atau teknis saja.
Konsep kurva juga diterapkan dalam seni, arsitektur, dan desain, di mana estetika dan keindahan
sering kali melibatkan penggunaan kurva dengan cermat.

1
Praktikum Grafika Komputer
Pertemuan ke-3 Kurva

II. PEMBAHASAN
A. Kurva Polynomial Derajat 1
1 Source Code (GL_POINTS)

#include <windows.h>
#include <gl/glut.h>

void display (void)


{
glClear (GL_COLOR_BUFFER_BIT) ;
glColor3f (0.0,1.0,0.0);
float t = 0.0;
glBegin (GL_POINTS);
for (t = -1.0; t <= 1.0 ; t += 0.01) {
glVertex3f(t, -0.5 + t*t, 0.0);
};
glEnd();
glFlush();
}

void kunci (unsigned char key, int x, int y) {


switch (key) {
case 27 :
case 'q' :
exit(0);
break;
}
glutPostRedisplay();
}
int main (int argc, char *argv[]) {
glutInit (&argc, argv) ;
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (400,400);
glutInitWindowPosition (100,100);
glutCreateWindow ("2206013_Gea Davids Khalik_Kurva Polynomial 1
Derajat");
glutDisplayFunc (display);
glutKeyboardFunc(kunci);
glutMainLoop();
return 0;
}

2
Praktikum Grafika Komputer
Pertemuan ke-3 Kurva

2 Output

3 Source Code (GL_LINES)

#include <windows.h>
#include <gl/glut.h>

void display (void)


{
glClear (GL_COLOR_BUFFER_BIT) ;
glColor3f (0.0,1.0,0.0);
float t = 0.0;
glBegin (GL_LINES);
for (t = -1.0; t <= 1.0 ; t += 0.01) {
glVertex3f(t, -0.5 + t*t, 0.0);
};
glEnd();
glFlush();
}

void kunci (unsigned char key, int x, int y) {


switch (key) {
case 27 :
case 'q' :
exit(0);
break;
}
glutPostRedisplay();

3
Praktikum Grafika Komputer
Pertemuan ke-3 Kurva

}
int main (int argc, char *argv[]) {
glutInit (&argc, argv) ;
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (400,400);
glutInitWindowPosition (100,100);
glutCreateWindow ("2206013_Gea Davids Khalik_Kurva
Polynomial 1 Derajat");
glutDisplayFunc (display);
glutKeyboardFunc(kunci);
glutMainLoop();
return 0;
}

4 Output

5 Source Code (GL_LINE_STRIP)

#include <windows.h>
#include <gl/glut.h>

void display (void)


{
glClear (GL_COLOR_BUFFER_BIT) ;
glColor3f (0.0,1.0,0.0);
float t = 0.0;
glBegin (GL_LINE_STRIP);
for (t = -1.0; t <= 1.0 ; t += 0.01) {
glVertex3f(t, -0.5 + t*t, 0.0);
};
glEnd();

4
Praktikum Grafika Komputer
Pertemuan ke-3 Kurva

glFlush();
}

void kunci (unsigned char key, int x, int y) {


switch (key) {
case 27 :
case 'q' :
exit(0);
break;
}
glutPostRedisplay();
}
int main (int argc, char *argv[]) {
glutInit (&argc, argv) ;
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (400,400);
glutInitWindowPosition (100,100);
glutCreateWindow ("2206013_Gea Davids Khalik_Kurva Polynomial 1
Derajat");
glutDisplayFunc (display);
glutKeyboardFunc(kunci);
glutMainLoop();
return 0;
}

6 Output

5
Praktikum Grafika Komputer
Pertemuan ke-3 Kurva

7 Source Code (GL_LINES_LOOP)

#include <windows.h>
#include <gl/glut.h>

void display (void)


{
glClear (GL_COLOR_BUFFER_BIT) ;
glColor3f (0.0,1.0,0.0);
float t = 0.0;
glBegin (GL_LINE_LOOP);
for (t = -1.0; t <= 1.0 ; t += 0.01) {
glVertex3f(t, -0.5 + t*t, 0.0);
};
glEnd();
glFlush();
}

void kunci (unsigned char key, int x, int y) {


switch (key) {
case 27 :
case 'q' :
exit(0);
break;
}
glutPostRedisplay();
}
int main (int argc, char *argv[]) {
glutInit (&argc, argv) ;
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (400,400);
glutInitWindowPosition (100,100);
glutCreateWindow ("2206013_Gea Davids Khalik_Kurva Polynomial 1
Derajat");
glutDisplayFunc (display);
glutKeyboardFunc(kunci);
glutMainLoop();
return 0;
}

6
Praktikum Grafika Komputer
Pertemuan ke-3 Kurva

9 Output

7
B. Kurva Polynomial Derajat 2
1 Source Code (GL_POINTS)

#include <windows.h>
#include <gl/glut.h>
void myinit() {
glClearColor(0.0, 0.0, 0.0, 1.0);
glColor3f(1.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-10.0, 10.0, -10.0, 10.0);
glMatrixMode(GL_MODELVIEW);
}
void display(void)
{
/* bersihkan layar */
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (0.0, 1.0, 0.0);
float t = 0.0;
//f(x) = 1/14 (x+4)(x+1)(x-1)(x-3) + 0.5
glBegin(GL_POINTS);
for(t = -10.0; t<=10.0; t+=0.1){
glVertex3f (t, (t+4)*(t+1)*(t-1)*(t-3)/14 + 0.5, 0.0);
} glEnd();
glBegin(GL_LINES);
glVertex3f(-10.0,0.0,0.0);
glVertex3f(10.0,0.0,0.0);
glVertex3f(0.0,-10.0,0.0);
glVertex3f(0.0,10.0,0.0);
glEnd();
glFlush ();
}

void kunci(unsigned char key, int x, int y)


{
switch (key) {
/* aplikasi berhenti ketika tombol q ditekan */
case 27 :
case 'q':
exit(0);
break;
}
glutPostRedisplay();
}

int main(int argc, char* argv[]) {


glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(400,400);
glutInitWindowPosition(100,100);
glutCreateWindow("2206013_Gea Davids Khalik_Kurva Polynomial
derajat 2");
glutDisplayFunc(display);
myinit();

1
Praktikum Grafika Komputer
Pertemuan ke-3 Kurva

glutMainLoop();
return 0;
}

2 Output

3 Source Code (GL_LINES)

#include <windows.h>
#include <gl/glut.h>
void myinit() {
glClearColor(0.0, 0.0, 0.0, 1.0);
glColor3f(1.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-10.0, 10.0, -10.0, 10.0);
glMatrixMode(GL_MODELVIEW);
}
void display(void)
{
/* bersihkan layar */
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (0.0, 1.0, 0.0);
float t = 0.0;
//f(x) = 1/14 (x+4)(x+1)(x-1)(x-3) + 0.5
glBegin(GL_LINES);
for(t = -10.0; t<=10.0; t+=0.1){
glVertex3f (t, (t+4)*(t+1)*(t-1)*(t-3)/14 + 0.5, 0.0);
} glEnd();
glBegin(GL_LINES);
glVertex3f(-10.0,0.0,0.0);

2
Praktikum Grafika Komputer
Pertemuan ke-3 Kurva

glVertex3f(10.0,0.0,0.0);
glVertex3f(0.0,-10.0,0.0);
glVertex3f(0.0,10.0,0.0);
glEnd();
glFlush ();
}

void kunci(unsigned char key, int x, int y)


{
switch (key) {
/* aplikasi berhenti ketika tombol q ditekan */
case 27 :
case 'q':
exit(0);
break;
}
glutPostRedisplay();
}

int main(int argc, char* argv[]) {


glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(400,400);
glutInitWindowPosition(100,100);
glutCreateWindow("2206013_Gea Davids Khalik_Kurva Polynomial
derajat 2");
glutDisplayFunc(display);
myinit();
glutMainLoop();
return 0;
}

3
Praktikum Grafika Komputer
Pertemuan ke-3 Kurva

4 Output

5 Source Code (GL_LINE_STRIP)

#include <windows.h>
#include <gl/glut.h>
void myinit() {
glClearColor(0.0, 0.0, 0.0, 1.0);
glColor3f(1.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-10.0, 10.0, -10.0, 10.0);
glMatrixMode(GL_MODELVIEW);
}
void display(void)
{
/* bersihkan layar */
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (0.0, 1.0, 0.0);
float t = 0.0;
//f(x) = 1/14 (x+4)(x+1)(x-1)(x-3) + 0.5
glBegin(GL_LINE_STRIP);
for(t = -10.0; t<=10.0; t+=0.1){
glVertex3f (t, (t+4)*(t+1)*(t-1)*(t-3)/14 + 0.5, 0.0);
} glEnd();
glBegin(GL_LINES);
glVertex3f(-10.0,0.0,0.0);
glVertex3f(10.0,0.0,0.0);
glVertex3f(0.0,-10.0,0.0);
glVertex3f(0.0,10.0,0.0);
glEnd();

4
Praktikum Grafika Komputer
Pertemuan ke-3 Kurva

glFlush ();
}

void kunci(unsigned char key, int x, int y)


{
switch (key) {
/* aplikasi berhenti ketika tombol q ditekan */
case 27 :
case 'q':
exit(0);
break;
}
glutPostRedisplay();
}

int main(int argc, char* argv[]) {


glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(400,400);
glutInitWindowPosition(100,100);
glutCreateWindow("2206013_Gea Davids Khalik_Kurva Polynomial
derajat 2");
glutDisplayFunc(display);
myinit();
glutMainLoop();
return 0;
}

6 Output

5
Praktikum Grafika Komputer
Pertemuan ke-3 Kurva

7 Source Code (GL_LINE_LOOP)

#include <windows.h>
#include <gl/glut.h>
void myinit() {
glClearColor(0.0, 0.0, 0.0, 1.0);
glColor3f(1.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-10.0, 10.0, -10.0, 10.0);
glMatrixMode(GL_MODELVIEW);
}
void display(void)
{
/* bersihkan layar */
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (0.0, 1.0, 0.0);
float t = 0.0;
//f(x) = 1/14 (x+4)(x+1)(x-1)(x-3) + 0.5
glBegin(GL_LINE_LOOP);
for(t = -10.0; t<=10.0; t+=0.1){
glVertex3f (t, (t+4)*(t+1)*(t-1)*(t-3)/14 + 0.5, 0.0);
} glEnd();
glBegin(GL_LINES);
glVertex3f(-10.0,0.0,0.0);
glVertex3f(10.0,0.0,0.0);
glVertex3f(0.0,-10.0,0.0);
glVertex3f(0.0,10.0,0.0);
glEnd();
glFlush ();
}

void kunci(unsigned char key, int x, int y)


{
switch (key) {
/* aplikasi berhenti ketika tombol q ditekan */
case 27 :
case 'q':
exit(0);
break;
}
glutPostRedisplay();
}

int main(int argc, char* argv[]) {


glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(400,400);
glutInitWindowPosition(100,100);
glutCreateWindow("2206013_Gea Davids Khalik_Kurva Polynomial
derajat 2");
glutDisplayFunc(display);
myinit();
glutMainLoop();

6
Praktikum Grafika Komputer
Pertemuan ke-3 Kurva

return 0;
}

8 Output

7
Praktikum Grafika Komputer
Pertemuan ke-3 Kurva

C. Kurva Trigonometri
1 Source Code (GL_POINTS)

#include <windows.h>
#include <gl/glut.h>
#include <math.h>

void myinit () {
glClearColor(0.0,0.0,0.0,1.0);
glColor3f(1.0,0.0,0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-1.0,10.0,-2.0,2.0);
glMatrixMode(GL_MODELVIEW);
}

void display(void) {
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0,1.0,0.0);
float x = 0.0;
glBegin(GL_POINTS);
for (x=0.0; x<=6.28; x+=0.1){
glVertex2f(x,sin(x));
}
glEnd();
glBegin(GL_LINES);
glVertex3f(-10.0,0.0,0.0);
glVertex3f( 10.0,0.0,0.0);
glVertex3f( 0.0,-10.0,0.0);
glVertex3f( 0.0,10.0,0.0);
glEnd();
glFlush();
}

void kunci (unsigned char key, int x, int y) {


switch (key) {
case 27:
case 'q':
exit(0);
break;
}
glutPostRedisplay();
}

int main (int argc, char* argv[]) {


glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(400,400);
glutInitWindowPosition(100,100);
glutCreateWindow("2206013_Gea Davids Khalik_Kurva Trinometri");
glutDisplayFunc(display);
myinit();
glutMainLoop();
return 0;

8
Praktikum Grafika Komputer
Pertemuan ke-3 Kurva

2 Output

3 Source Code (GL_LINES)

#include <windows.h>
#include <gl/glut.h>
#include <math.h>

void myinit () {
glClearColor(0.0,0.0,0.0,1.0);
glColor3f(1.0,0.0,0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-1.0,10.0,-2.0,2.0);
glMatrixMode(GL_MODELVIEW);
}

void display(void) {
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0,1.0,0.0);
float x = 0.0;
glBegin(GL_LINES);
for (x=0.0; x<=6.28; x+=0.1){
glVertex2f(x,sin(x));
}
glEnd();
glBegin(GL_LINES);
glVertex3f(-10.0,0.0,0.0);
glVertex3f( 10.0,0.0,0.0);

9
Praktikum Grafika Komputer
Pertemuan ke-3 Kurva

glVertex3f( 0.0,-10.0,0.0);
glVertex3f( 0.0,10.0,0.0);
glEnd();
glFlush();
}

void kunci (unsigned char key, int x, int y) {


switch (key) {
case 27:
case 'q':
exit(0);
break;
}
glutPostRedisplay();
}

int main (int argc, char* argv[]) {


glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(400,400);
glutInitWindowPosition(100,100);
glutCreateWindow("2206013_Gea Davids Khalik_Kurva Trinometri");
glutDisplayFunc(display);
myinit();
glutMainLoop();
return 0;
}

4 Output

10
Praktikum Grafika Komputer
Pertemuan ke-3 Kurva

5 Source Code (GL_LINE_STRIP)

#include <windows.h>
#include <gl/glut.h>
#include <math.h>

void myinit () {
glClearColor(0.0,0.0,0.0,1.0);
glColor3f(1.0,0.0,0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-1.0,10.0,-2.0,2.0);
glMatrixMode(GL_MODELVIEW);
}

void display(void) {
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0,1.0,0.0);
float x = 0.0;
glBegin(GL_LINE_STRIP);
for (x=0.0; x<=6.28; x+=0.1){
glVertex2f(x,sin(x));
}
glEnd();
glBegin(GL_LINES);
glVertex3f(-10.0,0.0,0.0);
glVertex3f( 10.0,0.0,0.0);
glVertex3f( 0.0,-10.0,0.0);
glVertex3f( 0.0,10.0,0.0);
glEnd();
glFlush();
}

void kunci (unsigned char key, int x, int y) {


switch (key) {
case 27:
case 'q':
exit(0);
break;
}
glutPostRedisplay();
}

int main (int argc, char* argv[]) {


glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(400,400);
glutInitWindowPosition(100,100);
glutCreateWindow("2206013_Gea Davids Khalik_Kurva Trinometri");
glutDisplayFunc(display);
myinit();
glutMainLoop();
return 0;
}

11
Praktikum Grafika Komputer
Pertemuan ke-3 Kurva

6 Output

7 Source Code (GL_LINE_LOOP)

#include <windows.h>
#include <gl/glut.h>
#include <math.h>

void myinit () {
glClearColor(0.0,0.0,0.0,1.0);
glColor3f(1.0,0.0,0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-1.0,10.0,-2.0,2.0);
glMatrixMode(GL_MODELVIEW);
}

void display(void) {
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0,1.0,0.0);
float x = 0.0;
glBegin(GL_LINE_LOOP);
for (x=0.0; x<=6.28; x+=0.1){
glVertex2f(x,sin(x));
}
glEnd();
glBegin(GL_LINES);
glVertex3f(-10.0,0.0,0.0);
glVertex3f( 10.0,0.0,0.0);
glVertex3f( 0.0,-10.0,0.0);
glVertex3f( 0.0,10.0,0.0);
glEnd();

12
Praktikum Grafika Komputer
Pertemuan ke-3 Kurva

glFlush();
}

void kunci (unsigned char key, int x, int y) {


switch (key) {
case 27:
case 'q':
exit(0);
break;
}
glutPostRedisplay();
}

int main (int argc, char* argv[]) {


glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(400,400);
glutInitWindowPosition(100,100);
glutCreateWindow("2206013_Gea Davids Khalik_Kurva Trinometri");
glutDisplayFunc(display);
myinit();
glutMainLoop();
return 0;
}

8 Output

13
Praktikum Grafika Komputer
Pertemuan ke-3 Kurva

C. Penjelasan

1 Kurva Polynomial Derajat 1


a. Menggunakan GL_POINTS
Ketika menggunakan GL_POINTS, output dari program menunjukan garis kurva berupa
titik-titik yang terputus-putus dan terbentuk seperti huruf V. Pada titik-titik yang berada di
bagian sisi terlihat agak berjauhan dari titik-titik yang berada di bagian tengah terlihat
saling berdempetan.
b. Menggunakan GL_LINES
Ketika menggunakan GL_LINES, output berubah menjadi garis-garis pendek yang
terputus-putus dan terbentuk seperti huruf V. Pada bagian kedua sisi, garis-garis tersebut
memiliki jarak dan pada bagian tengah nya garis-garis pendek tersebut terlihat seperti
menyatu akan tetapi itu hanya berdekatan tidak sampai menyatu.
c. Menggunakan GL_LINE_STRIP
Ketika menggunakan GL_LINE_STRIP, output berubah menjadi garis yang membentuk
huruf V. Garis tersebut terbentuk tanpa adanya jarak baik pada bagian sisi maupun pada
bagian tengah, berbeda Ketika menggunakan GL_POINTS dan GL_LINES yang pada
kedua sisi nya memiliki jarak antar titik maupun antar garis.
d. Menggunakan GL_LINE_LOOP
Ketika menggunakan GL_LINE_LOOP , output menghasilkan bentuk yang berbeda
tidak seperti bentuk-bentuk sebelumnya yang terbentuk seperti huruf V. Pada
GL_LINE_LOOP untuk garis sama seperti GL_LINE_STRIP akan tetapi garis tersebut
menyambung dari satu sisi ke sisi yang lain sehingga kedua sisi menyambung dan
menghasilkan bentuk layaknya seperti mangkuk.

2 Kurva Polynomial Derajat 2


a. Menggunakan GL_POINTS
Ketika menggunakan GL_POINTS, output dari program menunjukan garis kurva berupa
titik-titik yang terputus-putus dan terbentuk seperti huruf W. Pada titik-titik yang berada
di bagian sisi terlihat agak berjauhan dari titik-titik yang berada di bagian tengah terlihat
saling berdempetan.
b. Menggunakan GL_LINES
Ketika menggunakan GL_LINES, output berubah menjadi garis-garis pendek yang
terputus-putus dan terbentuk seperti huruf W. Pada bagian ujung kedua sisi, garis-garis

14
Praktikum Grafika Komputer
Pertemuan ke-3 Kurva

tersebut memiliki jarak yang terlihat jauh dan pada bagian tengah nya garis-garis pendek
tersebut terlihat seperti menyatu akan tetapi itu hanya berdekatan tidak sampai menyatu.
c. Menggunakan GL_LINE_STRIP
Ketika menggunakan GL_LINE_STRIP, output berubah menjadi garis yang membentuk
huruf W. Garis tersebut terbentuk tanpa adanya jarak baik pada bagian ujung sisi maupun
pada bagian tengah, berbeda Ketika menggunakan GL_POINTS dan GL_LINES yang
pada kedua sisi nya memiliki jarak antar titik maupun antar garis.
d. Menggunakan GL_LINE_LOOP
Ketika menggunakan GL_LINE_LOOP, output akan sama seperti menggunakan
GL_LINE_STRIP. Namun, dengan tambahan, akan menghubungkan titik terakhir
kembali ke titik pertama, membentuk poligon tertutup.

3 Kurva Trigonometri
a. Menggunakan GL_POINTS
Ketika menggunakan GL_POINTS, output dari program menunjukan garis kurva berupa
titik-titik yang terputus-putus dan terbentuk seperti gelombang naik turun. Pada titik-titik
yang berada pada lekukan gelombang terlihat seperti berdekatan dan titik-titik yang berada
pada awal dan akhir akhir memilik jarak agak berjauhan.
b. Menggunakan GL_LINES
Ketika menggunakan GL_LINES, output berubah menjadi garis-garis pendek yang
terputus-putus dan terbentuk seperti gelombang yang naik turun. Pada bagian awal dan
akhir, garis-garis tersebut memiliki jarak yang terlihat jauh dan pada setiap lekukan garis-
garis pendek tersebut terlihat seperti menyatu akan tetapi itu hanya berdekatan.
c. Menggunakan GL_LINE_STRIP
Ketika menggunakan GL_LINE_STRIP, output berubah menjadi garis yang membentuk
gelombang naik turun. Garis tersebut terbentuk tanpa adanya jarak baik pada bagian awal
dan akhir garis maupun pada setiap lekukan nya, berbeda ketika menggunakan
GL_POINTS dan GL_LINES yang pada kedua sisi nya memiliki jarak antar titik
maupun antar garis.
d. Menggunakan GL_LINE_LOOP
Ketika Menggunakan GL_LINE_LOOP, Output sama seperti menggunakan
GL_LINE_STRIP. Akan tetapi, pada bagian titik akhir Kembali pada titik awal sehingga
garis yang terbuat tidak memiliki ujung.

15
Praktikum Grafika Komputer
Pertemuan ke-3 Kurva

Sehingga, setelah mengamati beberapa program kurva ini, Pemilihan jenis primitif
OpenGL seperti `GL_POINTS`, `GL_LINES`, `GL_LINE_STRIP`,
`GL_LINE_LOOP` tergantung pada apa yang ingin kita buat dalam menggambar kurva.
Pilihan antara `GL_LINE_STRIP` dan `GL_LINE_LOOP` tergantung pada apakah
kita ingin kurva yang tertutup (bentuk poligon) atau kurva terbuka (tidak membentuk
poligon).
Sebagai contoh, jika kita ingin menggambar kurva polinomial tertutup yang
mengikuti urutan titik-titik, maka kita dapat menggunakan `GL_LINE_LOOP`. Namun,
jika kita hanya ingin menggambarkan segmen garis antara titik-titik, kita bisa
menggunakan `GL_LINES`. Jika kita hanya ingin menampilkan titik-titik sendiri, maka
`GL_POINTS` cocok digunakan.
Tidak ada primitif OpenGL yang sebaiknya dihindari dalam membuat kurva, karena
pemilihan primitif tergantung pada kebutuhan kita. Yang penting adalah memilih primitif
yang sesuai dengan tujuan dan efek visual yang kita inginkan.

III. Kesimpulan

Kurva adalah konsep yang penting dalam matematika, ilmu komputer, dan berbagai bidang
lainnya. Ini merujuk pada representasi visual atau deskripsi matematis dari jalur yang ditempuh oleh
objek atau fenomena seiring waktu atau ruang. Kurva digunakan untuk menggambarkan pergerakan,
relasi, dan perubahan dalam berbagai konteks, mulai dari geometri hingga pemodelan komputer.
Kurva dapat memiliki berbagai karakteristik dan bentuk, dari yang sederhana hingga yang
kompleks, dan sering digambarkan dengan persamaan matematis. Dalam pemrograman dan desain
grafis, kurva digunakan untuk menciptakan visualisasi yang menarik, animasi, dan grafik.
Pemilihan jenis primitif OpenGL seperti `GL_POINTS`, `GL_LINES`,
`GL_LINE_STRIP`, dan `GL_LINE_LOOP` sangat tergantung pada tujuan yang ingin dicapai
dalam menggambar kurva. Tidak ada primitif yang sebaiknya dihindari, karena pemilihan primitif
tergantung pada kebutuhan dan efek visual yang diinginkan.
Pemahaman tentang kurva memiliki dampak luas, dari aplikasi ilmiah hingga seni dan desain.
Ini memungkinkan kita untuk memahami, memodelkan, dan memvisualisasikan dunia di sekitar kita
dengan lebih baik.

16

Anda mungkin juga menyukai