Minggu, 25 Desember 2016

Penggambaran Objek Primitif Poligon 2 Dimensi

Meski suasana hati lagi sumpek dan batin tertekan hal tersebut tidak menyurutkan semangat Saya untuk posting di blog kesayangan ini.

Pada kesempatan yang agak berbahagia ini, Saya akan membahas apa yang saya ingat saat dikelas mengikuti praktikum dan kuliah grafika komputer. Dipertemuan tiga ini Pak Dosen mendongeng menceritakan Primitive Object 2 Dimensi. Primitif yang akan kita bahas bukanlah primitive dalam lingkup kebudayaan atau peradaban ya akan tetapi primitive dalam Bahasa pemrograman.

Primitif Object 2D meruakan suatu model pembuatan gambar yang mengacu kepada perspektif 2 titik. Pada umumnya object 2 dimensi ini adalah suatu object yang terdiri dari sekumpulan banyak titik yang menyambung dan saling terhubung menjadi satu dengan perantara garis lurus berupa polyline, polygon maupun kurva. Nah, yang akan kita bahas adalah polygon.

Begini Guys, didalam OpenGL untuk menghasilkan object primitive polygon itu cukup sederhana. Hanya dengan dengan menambahkan sintaks GL_POLYGON dan mengikuti aturan penulisan yang berlaku maka jadilan object primitive polygon. Biar lebih jelasnya Saya akan membagikan source code praktikum 3 tentang object primitive polygon.

Source Code & Penjelasan sintaks

#include <windows.h>
#include <stdio.h> 
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <glut.h>

Kode program diatas berfungsi untuk import library yang akan digunakan
<stdlib> digunakan untuk membersihkan layar sama dengan <windows.h>
<string> library yang menyimpan fungsi-fungsi dalam penangan string atau substring
<Stdarg.h> librar yang mengijinkan pendefinisian angka
<glut>library grafik dari opengl


void display(void) {
      GLubyte fly[] = {
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x03, 0x80, 0x01, 0xC0, 0x06, 0xC0, 0x03, 0x60,
            0x04, 0x60, 0x06, 0x20, 0x04, 0x30, 0x0C, 0x20,
            0x04, 0x18, 0x18, 0x20, 0x04, 0x0C, 0x30, 0x20,
            0x04, 0x06, 0x60, 0x20, 0x44, 0x03, 0xC0, 0x22, 0x44,
            0x01, 0x80, 0x22, 0x44, 0x01, 0x80, 0x22, 0x44, 0x01,
            0x80, 0x22, 0x44, 0x01, 0x80, 0x22, 0x44, 0x01, 0x80,
            0x22, 0x44, 0x01, 0x80, 0x22, 0x66, 0x01, 0x80, 0x66,
            0x33, 0x01, 0x80, 0xCC, 0x19, 0x81, 0x81, 0x98, 0x0C, 0xC1,
            0x83, 0x30, 0x07, 0xe1, 0x87, 0xe0, 0x03, 0x3f, 0xfc, 0xc0,
            0x03, 0x31, 0x8c, 0xc0, 0x03, 0x33, 0xcc, 0xc0, 0x06, 0x64,
            0x26, 0x60, 0x0c, 0xcc, 0x33, 0x30, 0x18, 0xcc, 0x33, 0x18,
            0x10, 0xc4, 0x23, 0x08, 0x10, 0x63, 0xC6, 0x08, 0x10, 0x30,
            0x0c, 0x08, 0x10, 0x18, 0x18, 0x08, 0x10, 0x00, 0x00, 0x08};
      GLubyte halftone[] = {
            0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
            0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
            0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
            0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
            0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
            0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
            0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
            0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
            0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
            0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
            0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
            0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
            0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
            0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
            0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55,
            0xAA, 0xAA, 0xAA, 0xAA, 0x55, 0x55, 0x55, 0x55};
            glClear (GL_COLOR_BUFFER_BIT);
            glColor3f (1.0, 1.0, 1.0);
            /* draw one solid, unstippled rectangle, */
            /* then two stippled rectangles */
            glRectf (25.0, 25.0, 125.0, 125.0);
            glEnable (GL_POLYGON_STIPPLE);
            glPolygonStipple (fly);
            glRectf (125.0, 25.0, 225.0, 125.0);
            glPolygonStipple (halftone);
            glRectf (225.0, 25.0, 325.0, 125.0);
            glDisable (GL_POLYGON_STIPPLE);
            glFlush ();
} void init (void) { glClearColor (0.0, 0.0, 0.0, 0.0);
glShadeModel (GL_FLAT);
} void reshape (int w, int h) { glViewport (0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
gluOrtho2D (0.0, (GLdouble) w, 0.0, (GLdouble) h);
}
int main(int argc, char** argv) {
      glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (350, 150);
glutCreateWindow (argv[0]);
init ();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMainLoop();
return 0;

}

Screenshot :

Previous Post
Next Post

post written by:

0 komentar: