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;
Defenisi objek ini dapat dituliskan pada function userdraw secara langsung dengan menyatakan
sebagai array dari titik 2-D
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 userdraw(void)
{
point2D_t segitiga [4] = {{0,0}, {200,0},
{100,100}}
color_t kuning ={1,1,0};
fillpolygon (segitiga, 3, kuning)
glEnd();
}