Çokgenler ve OpenGL
Yazan : Şadi Evren ŞEKER
Bu yazının amacı bilgisayar grafiklerinin en temel konularından birisi olan çokgenlerin OpenGL ile nasıl çizilebildiklerini açıklamaktır.
Öncelikle OpenGL kütüphanesindeki fonksiyon isimlerini hatırlayalım:
glRect*(x1, y1, x2, y2);
Yukarıdaki fonksiyonda * ile gösterilen yere aşağıdaki değerler gelebilmektedir. Örneğin glRectiv şeklinde bir kullanımın anlamı glRect fonksiyonunun parametreleri integer (tam sayı) olacak ve vector (yöney) içerecek demektir.
Buna göre aşağıdaki tam sayı kullanımı:
glRecti(200, 100, 50, 250);
ile aşağıdaki tamsayılı yöney kullanımı:
int v1[ ]={200, 100};
int v1[ ]={50, 250};
glRectiv(v1, v2);
Aynı anlama gelmektedir.
OpenGL üzerinde aryıca 2 boyutlu düzlemleri ifade etmek için kullanılabilecek çeşitli alternatifler bulunmaktadır. Örneğin aşağıdaki şekilleri ve çizimleri için kullanılan OpenGL geometrik objelerinin (geometric primitives) farkllı durumları ele alınmıştır:

yukarıdaki her şeklin farklı bir geometrik obje kullanılarak çizilmesi mümkündür. Örneğin GL_POLYGON objesi aşağıdaki kod ile çizilebilir:
glBegin (GL_POLYGON); glVertex2iv(p1); glVertex2iv(p2); glVertex2iv(p3); glVertex2iv(p4); glVertex2iv(p5); glVertex2iv(p6); glEnd();
Yukarıdaki kodda örnek olarak verilen şekildeki altıgenin her kenarını ayrı ayrı çizen bir geometrik obje gösterilmektedir.

Yukarıdai bu şekil için de örneğin aşağıdaki kod kullanılabilir:
glBegin (GL_QUADS); glVertex2iv(p1); glVertex2iv(p2); glVertex2iv(p3); glVertex2iv(p4); glVertex2iv(p5); glVertex2iv(p6); glVertex2iv(p7); glVertex2iv(p8); glEnd();
« Taşırma Algoritması (Flood Filling Algorithm) | C ile Dosya İşlemleri »
Yorumlar
Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'Çokgenler ve OpenGL' isimli yazı 21 Oct 2008 tarihinde, saat: 05:41 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 1598 defa okunmuştur.
Benzer yazıları Bilgisayar Grafiği (Computer Graphics) kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.
Yazarın Kitabı
Bu yazının yazarı Şadi Evren ŞEKER'in son çıkan kitabı "Programlama ve Veri Yapılarına giriş (C, C++ ve JAVA ile)" hakkında bilgi almak için Buraya tıklayabilirsiniz.
Eklenen Son Yazılar
- Visual Basic ile Gösterici (Pointer) Kullanımı
- Hasse Çizgeleri (Hasse Diagrams)
- Zeki Vekiller (Akıllı Ajanlar, Intelligent Agents, Zeki Etmenler )
- Integral Kriptoanalizi ( Toplam Tecessüsü , Integral Cryptoanalysis)
- Diferansiyel Kriptoanalizi ( Fark Tecessüsü , Differential Cryptoanalysis)
- Sierpinski Üçgeni (Sierpinski Triangle)
- C ile programlamaya giriş final sınavı çözümleri
- Çok Seviyeli Sıralar (Multi Level Queues)
- Çift Özetleme (Double Hashing)
- İkinci Dereceden Sondalama (Quadratic Probing)
Yapılan Son Yorumlar
- oguz: hocam bu örnegın tamamen aynısını hoca flash...
- oguz: yoo hocam siz haklıısnız tamam ben yanlış...
- Şadi Evren ŞEKER: Sıralama işleminiz poligonu...
- Şadi Evren ŞEKER: bahsettiğiniz sıralama algoritması...
- Abdurrahman ulusoy: merhaba hocam. gelişigüzel...
- Oguz Okutan: Merhaba hocam.. Fonksiyonlarda degere göre...
- Şadi Evren ŞEKER: Null, NULL, nil veya null olarak...
- Fatih Kabakci: hocam merhabalar,...
- kara: Çok güzel anlatılmış gerçekten teşekkürler...
- Şadi Evren ŞEKER: Bahsettiğiniz şekil dönüşümü...
- Caner: Kullanıcıdan açı girdisi almıyorsanız...
- Furkan Yediyildiz: Algoritmanin mantigi cok güzel...
- havva: çok sağolun çok güzel açıklamalar var tşk...
- Şadi Evren ŞEKER: typedef komutu, bir yapıdan yeni bir...
- fatih kabakci: hocam ben structures ile ilgili bir sorum...
- Şadi Evren ŞEKER: evet, yukarıda açıklanan, herhangi...
- Abdurrahman ulusoy: fi açısından teta kadar döndürme...
- Şadi Evren ŞEKER: Hayır yok, bir noktanın, herhangi...
- Abdurrahman ulusoy: Bu durumda yukarıdaki formüllerin...
- Abdurrahman ulusoy: Merhaba hocam Üstteki mesajımda...
Yakın Yazılar
OpenGL Geometrik Nesneler (Geometric Objects)
OpenGL Nesne Seçimi (Object Picking)
OpenGL ve Kamera Görüntüsü (Camera Viewing)
Çokgenlerin Üçgene Çevrimi (Splitting Polygons to Triangles)
OpenGL ile Arkayüz (Opengl Backface)
OpenGL ile Malzeme Özellikleri (Material Properties)
Dik İzdüşüm (Orthogonal, Orthographic Projection)
Mafsallı Tasarım (Articular Design)
OpenGL ile Aydınlatma (Lighting)
Bağlantılar