OpenGL ile Koch Kar Tanesi Fraktalını Çizmek
Wed, May 3, 2017
One-minute read
Bu yazımızda FreeGLUT kullanarak Koch kar tanesi fraktalını çiziyoruz.
Koch fraktalını yaparken recursive fonksiyonlardan yararlanacağız. Koch fraktalı 2 nokta arasını 3e bölüp bunlardan birer eşkenar üçgen elde etmemize yarıyor.
Eşkenar üçgenin her bir kenarının açısı 60 derece olduğu için aşağıdaki gibi bir fonksiyon yazabiliriz.
void koch(GLfloat aci,GLfloat uzunluk,int donus) { if(donus==0) { GLfloat x=0,y=0; x = oldx + ((uzunluk) * cos(derece*aci)); y = oldy + ((uzunluk) * sin(derece*aci)); glVertex2f(oldx, oldy); glVertex2f(x, y); oldx = x; oldy = y; } else{ donus-=1; koch(aci,uzunluk,donus);//1.kenar koch(aci+60,uzunluk,donus);//2.kenar koch(aci-60,uzunluk,donus);//3.kenar koch(aci,uzunluk,donus);//4.kenar } }
Çağırmak için display fonksiyonumuza aşağıdaki gibi bir fonksiyon çağırısı yeterli olacaktır.
koch(0,0.05,3);
Ek not:
Açılarımızı 120 ve -120 olarak ekleme yaparsak sadece üst kısım değil bir yıldız şeklinde oluştururuz fraktalımızı.
Kaynak : CSCI 4550 – Marcus Young – 9/20/10