Open GL

Wahyu Raja Butar-Butar Reply 07:32
Menampilkan Garis
Menampilkan garis dalam OpenGL menggunakan perintah GL_LINES. Menggambarkan garis hanya menggunakan 2 buah vertex,yaitu titik mulai dan titik akhir. Untuk jelasnya, perhatikan gambar dibawah ini :

Program untuk membuat garis adalah:

glBegin(GL_LINES);
glVertex3f(0.2, 0.2, 0.0);
glVertex3f(0.8, 0.2, 0.0);
glVertex3f(0.2, 0.5, 0.0);
glVertex3f(0.8, 0.5, 0.0);
glVertex3f(0.2, 0.8, 0.0);
glVertex3f(0.8, 0.8, 0.0);
glEnd();


Program Lengkap untuk membuat garis adalah:
#include <gl/glut.h>
void Draw() {
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
glBegin(GL_LINES);
glVertex3f(0.2, 0.2, 0.0);
glVertex3f(0.8, 0.2, 0.0);
glVertex3f(0.2, 0.5, 0.0);
glVertex3f(0.8, 0.5, 0.0);
glVertex3f(0.2, 0.8, 0.0);
glVertex3f(0.8, 0.8, 0.0);
glEnd();
glFlush();
}
void Initialize() {
glClearColor(0.0, 0.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}
int main(int iArgc, char** cppArgv) {
glutInit(&iArgc, cppArgv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(250, 250);
glutInitWindowPosition(200, 200);
glutCreateWindow(“Line”);
Initialize();
glutDisplayFunc(Draw);
glutMainLoop();
return 0;
}
Hasil Kompile program garis diatas adalah :

Menampilkan Segitiga
Menampilkan Segitiga menggunakan perintah GL_TRIANGLES dengan 3 buah vertex. Segitiga yang dibentuk bisa searah dengan jarum jam atau berlawanan. Pada contoh ini gambar pertama berlawanan dengan arah jarum jam dan yang kedua sebaliknya.

Perintah menampilkan segitiga adalah:

glBegin(GL_TRIANGLES);
glVertex3f(0.2, 0.2, 0.0);
glVertex3f(0.8, 0.2, 0.0);
glVertex3f(0.2, 0.5, 0.0);
glVertex3f(0.8, 0.5, 0.0);
glVertex3f(0.2, 0.8, 0.0);
glVertex3f(0.8, 0.8, 0.0);
glEnd();


Perintah lengkap menampilkan segitiga adalah :

#include <gl/glut.h>

void Draw() {
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
glBegin(GL_TRIANGLES);
glVertex3f(0.2, 0.2, 0.0);
glVertex3f(0.8, 0.2, 0.0);
glVertex3f(0.2, 0.5, 0.0);
glVertex3f(0.8, 0.5, 0.0);
glVertex3f(0.2, 0.8, 0.0);
glVertex3f(0.8, 0.8, 0.0);
glEnd();
glFlush();
}

void Initialize() {
glClearColor(0.0, 0.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}

int main(int iArgc, char** cppArgv) {
glutInit(&iArgc, cppArgv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(250, 250);
glutInitWindowPosition(200, 200);
glutCreateWindow(“Triangles”);
Initialize();
glutDisplayFunc(Draw);
glutMainLoop();
return 0;
}

Hasil Kompiler program segitiga diatas adalah:

 Color
          Untuk memberi warna pada objek, seperti titik atau garis, dapat dilakukan dengan menggunakan fungsi à glColor3f(red,green,blue);
           Di mana red, green, blue berada pada 0 sampai dengan 1, yang menunjukkan skala pencerahan dari masing-masing skala.
           Berikut adalah beberapa fungsi color :
  1. glColor3f(0,0,0);//black
  2. glColor3f(0,0,1);//blue
  3. glColor3f(0,1,0);//green
  4. glColor3f(0,1,1)//cyan
  5. glColor3f(1,0,0)//red
  6. glColor3f(1,0,1)//magenta
  7. glColor3f(1,1,0);//yellow
  8. glColor3f(1,1,1);//white
Program ini menampilkan 4 buah titik dengan ukuran tertentu dengan warna yang berbeda-beda. Warna dasar dari dalam OpenGL itu adalah merah,hijau dan biru (RGB).
Kode Program pewarnaan adalah :
#include <windows.h>
#include <gl/glut.h>

void Display(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    glBegin(GL_POINTS);
        glColor3f(0.0,1.0,0.0);
        glVertex2f(10.,10.);
        glColor3f(1.0,1.0,0.0);
        glVertex2f(10.,110.);
        glColor3f(0.0,0.0,1.0);
        glVertex2f(150.,110.0);
        glColor3f(1.0,1.0,1.0);
        glVertex2f(150.,10);
    glEnd();
    glFlush();
}

void reshape(int w,int h)
{
    glViewport(0,0,(GLsizei)w,(GLsizei)h);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluOrtho2D(0.0,160.0,0.0,120);


}
void init(void)
{
    glClearColor(1.0,0.0,0.0,1.0);
   glPointSize(20.0);
}

void main(int argc,char* argv[])
{
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    glutInitWindowSize(320,240);
    glutCreateWindow("ProgramPertama");
    init();
    glutDisplayFunc(Display);
    glutReshapeFunc(reshape);
    glutMainLoop();
}
Program di atas bila dikompel hasilnya :


Catatan :
glPushMatrix berfungsi untuk menyimpan koordinat yang ada. Sedangkan glPopMatrix adalah suatu fungsi guna memangil suatu fungsi yang telah disimpan pada glPushMatrix.
Comments
0 Comments
Facebook Comments by Media Blogger

Post a Comment

Search

Google+ Followers

Popular Posts

Translate