Anda di halaman 1dari 12

DEFENISI OBYEK GRAFIS 2-D

Sekumpulan titik-titik 2-D yang


Mendefinisikan struktur dari titik 2-D
dihubungkan dengan garis lurus ( Point2D_t )
baik berupa polyline, polygon,
atau kurva, yang secara
Mendefinisikan struktur warna (
komputasi dinyatakan sebagai Color_t )
array 1-D atau linked-list.
Mendefinisikan struktur dari obyek
grafik 2-D sebagai array dari titik 2-D
(Object2D_t).
Mendefinisikan struktur dari titik 2-D ( Point2D_t )

Typedef struct {
float x; Defenisi ini digunakan bila titik didefenisikan
float y; dalam sistem koordinat yang menggunakan
} bilangan Pecahan (float)
point2D_t;

Typedef struct {
int x; Defenisi ini digunakan bila titik didefenisikan
int y; dalam sistem koordinat yang menggunakan
} bilangan bulat (int)
point2D_t;
Mendefenisikan Warna

Typedef struct {
float r; Warna terdiri dari 3 elemen warna yaitu
float g; red (r), Green (g), dan Blue (b) yang
float b;
}
nilainya antara 0 dan 1
color_t;

Void setColor (color_t col)


{ Fungsi untuk memberi
glcolor3f(col.r, col.g, col.b) warna pada objek grafik
}
Mendefenisikan Obyek Grafik 2-D

Defenisi objek ini dapat dituliskan pada function userdraw secara langsung dengan menyatakan
sebagai array dari titik 2-D

Sebagai contoh untuk menyatakan Untuk menyatakan obyek bunga


obyek shape dapat dituliskan dapat dituliskan

Point 2D_t shape [1000] Point 2D_t bunga [360]


POLYLINE
Polyline adalah suatu fungsi yang digunakan untuk menggambar obyek 2-D yang sudah didefenisikan
didepan, dimana setiap titik pada objek mulai titik ke 0, 1, 2, 3,…, n dihubungkan dengan garis lurus
sehingga membentuk kurva terbuka
Drawpolyline (nama_objek2D, jumlah_titik)

Implementasi dari fungsi polyline adalah


void drawpolyline (point 2D_t pnt[],int n)
{ n adalah jumlah titik dalam objek 2D pnt
Int i;
glBegin (GL_LINE_STRIP);
for (i=0; i<n; i++) Pnt[] menyatakan objek 2D dalam
{ array yang ditentukan
glVertex2f(pnt[].x, pnt [i].y)
}
glEnd();
}
Contoh implementasi gambar objek dengan polyline

void userdraw(void)
{
pint2D_t segitiga [3] = {{0,0}, {200,0},
{100,100}}
setcolor(1,0,0)
Drawpolyline (segitiga,3)
glEnd();
}
Contoh Program
#include <windows.h> void drawpolyline(point2D_t pnt[],int n) void display(void) {
#include <GL/glut.h> { glClear(GL_COLOR_BUFFER_BIT);
typedef struct int i; userdraw();
{ glBegin(GL_LINE_STRIP); glutSwapBuffers();
int x,y; for (i=0; i<n; i++) }
} { int main(int argc, char **argv){
point2D_t; glVertex2i(pnt[i].x,pnt[i].y); glutInit(&argc,argv);
typedef struct } glutInitDisplayMode ( GLUT_DOUBLE | GLUT_RGB );
{ glEnd(); glutInitWindowPosition(100,100);
float r,g,b; } glutInitWindowSize(640,480);
} void userdraw(void) { glutCreateWindow ("Drawing by Achmad Basuki");
color_t; point2D_t segitiga [3] = {{0,0}, {200,0}, {100,100}}; glClearColor(0.0, 0.0, 0.0, 0.0);
void setColor (color_t col) //memblok dengan warna putih1 gluOrtho2D(-320., 320., -240.0, 240.0);
{ color_t tes ={1,1,1}; glutIdleFunc(display);
glColor3f(col.r, col.g, col.b); //setColor(1,1,1); glutDisplayFunc(display);
} drawpolyline(segitiga,3); glutMainLoop();
} return 0;
}
POLYGON
POLYGON adalah suatu fungsi yang mirip dengan POLYLINE. Pada polygon juga digunakan
konsep ARRAY dalam menyatakan Objek 2D sebagai kumpulan titik 2D. Untuk menggambar objek
2D dengan menggunakan POLYLINE dapat dituliskan dengan
Drawpolygon(nama_objek2D, jumlah_titik)
Implementasi dari fungsi polylgon adalah
void drawpolgon(point 2D_t pnt[],int n)
{
Int i; n adalah jumlah titik dalam objek 2D pnt
glBegin (GL_LINE_LOOP);
for (i=0; i<n; i++) Pnt[] menyatakan objek 2D dalam
{
array yang ditentukan
glVertex2f(pnt[].x, pnt [i].y)
}
glEnd();
}
Contoh implementasi gambar objek dengan polygon

void userdraw(void)
{
pint2D_t segitiga [4] = {{0,0}, {200,0},
{100,100}}
setcolor(1,0,0)
Drawpolygon(segitiga,3)
glEnd();
}
FILLPOLYGON
Fungsi ini digunakan untuk memberikan warna pada sebuah POLYGON dengan warna tertentu.
Untuk dapat mewarnai isi POLYGON dapat dituliskan dengan cara:
fillpolygon(nama_objek2D, jumlah_titik, warna)

void fillpolygon(point 2D_t pnt[],int n, color_t color)


{
Int i;
setColor(color);
Implementasi dari fungsi glBegin (GL_POLYGON);
for (i=0; i<n; i++)
fillpolygon adalah {
glVertex2f(pnt[].x, pnt [i].y)
}
glEnd();
}
Contoh implementasi gambar objek dengan fillpolygon

void userdraw(void)
{
point2D_t segitiga [4] = {{0,0}, {200,0},
{100,100}}
color_t kuning ={1,1,0};
fillpolygon (segitiga, 3, kuning)
glEnd();
}

Anda mungkin juga menyukai