Objek 2 Dimensi



Obyek grafik 2-D adalah sekumpulantitik-titik 2-D yang dihubungkan dengan garis lurus baik berupa polyline, polygon atau kurva. Obyek grafik 2-D didefinisikan sebagai sekumpulan titik 2-D yang secara komputasi dinyatakan sebagai array 1-D, atau linked-list.
            Untuk membuat obyek dua dimensi kita dapat menggunakan fungsi yang dimiliki oleh obyek primitive seperti QUADS, TRIANGLE_STRIP, TRIANGLE_FAN, POLYGON, dan lain sebagainya. Ketika kita akan membuat sebuah obyek dua dimensi, kita harus menentukan terlebih dahulu titik koordinat yang diperlukan untuk menamilkan obyek tersebut.

            Membuat sebuah bidang persegi atau belah ketupat dapat menggunakan fungsi QUADS dan QUADS_STRIP. Membuat obyek trapesium siku menggunakan fungsi TRIANGLE_FAN dan membuat trapesium sama kaki menggunakan fungsi TRIANGLES. Untuk membuat obyek layang-layang kita dapat menggunakan kode program yangtelah digunakan oleh bidang belah ketupat, hanya saja kita perlu membuat agar salah satu ujunya lebih panjang dengan menambah setengah penjang dari belah ketupat tesebut. seperti contoh di bawah ini:


Gambar bangun belah ketupat

Gambar bangun layang-layang
            Untuk pemberian warna pada bidang, kita dapat menggunakan fungsi glColor3f (0,0,0). Nilai parameter yang kita masukkan akan menentukan warna. Urutan warna menggunakan RGB (Red, Green, Blue), jadi ketika kita menginginkan warna hijau kita dapat menuliskannya seperti ini “glColor3f(0,1,0)”.
            Membuat obyek berupa lingkaran, yang pertama membuat fungsi bernama “lingkaran” yang didalamnya didefinisikan ukuran lingkaran yang akan ditampilkan, pemilihan warna, dan posisi koordinat lingkaran tersebut. nilai jari-jari ( r ) yang dimasukkan ketika membuat lingkaran menentukan ukuran lingkaran yang dihasilkan saat program dieksekusi. Setelah pembuatan fungsi lingkaran, fungsi tersebut akan dipanggil dalam fungsi main. Sintaks programnya untuk membuat lingkaran:
double i;
void lingkaran (int posx, int posy, int r){
      glBegin(GL_POLYGON);
      for (i=0; i<=360; i++)
            glVertex2d(posx+r*cos(i), posy+r*sin(i));
glEnd();
}
void lingkaran(){
      glClear(GL_COLOR_BUFFER_BIT);
      glColor3f(1.,0.2,0.1);
      lingkaran(0,0,100);
      glColor3f(0.0, 0.0, 1.0);
      lingkaran(120,120,50);
      glColor3f(0.0, 1.0, 0.0);
      lingkaran(200,200,25);
      glFlush();
}

Hasilnya:

Komentar