주요 소스코드
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 |