주요 소스코드

void koch_line(GLfloat *st, GLfloat *ed){
         glVertex2fv(st);
         glVertex2fv(ed);
}
void divide_koch_line(GLfloat *st, GLfloat *ed, int n){
         GLfloat a[2], b[2], c[2], d[2], e[2];
         if( n>0 ){
                  a[0] = st[0];
                  a[1] = st[1];
                  e[0] = ed[0];
                  e[1] = ed[1];
                  b[0] = st[0] + (ed[0] - st[0])/3.0;
                  b[1] = st[1] + (ed[1] - st[1])/3.0;
                  d[0] = st[0] + (ed[0] - st[0])*2.0/3.0;
                  d[1] = st[1] + (ed[1] - st[1])*2.0/3.0;
                  c[0] = b[0]+(d[0]-b[0])*cos(60.0*3.1415/180.0)-(d[1]-b[1])*sin(60.0*3.1415/180.0);
                  c[1] = b[1]+(d[0]-b[0])*sin(60.0*3.1415/180.0)+(d[1]-b[1])*cos(60.0*3.1415/180.0);

                  divide_koch_line(a,b,n-1);
                  divide_koch_line(b,c,n-1);
                  divide_koch_line(c,d,n-1);
                  divide_koch_line(d,e,n-1);
         }
         else{
                  koch_line(st,ed);
         }
}



 결과

'OpenGL' 카테고리의 다른 글

#3. OpenGL 선 그려보기  (0) 2011.07.12
#2. OpenGL 두번째 예제. 사각형 그려보기  (0) 2011.07.12
#1. OpenGL 설치 및 예제 파일 실행  (0) 2011.07.12
Ubuntu에 OpenGL 설치하기  (0) 2011.07.12
Posted by Нуеоп
,