간단한 코드지만 그 결과는 굉장(?)하기로 소문난 프랙탈 그래픽 중에 나무 모양을 그려내는 L-System을 작성해보았다. 아래는 그 코드..
void DrawLSystem(SDL_Surface *screen, int l, int d, int n) { float dx = l * sin(d * (M_PI/180.0)); float dy = l * cos(d * (M_PI/180.0)); if(n < 7) LineRel(screen, -dx, -dy, 0, 255, 0); else LineRel(screen, -dx, -dy, 100, 120, 0); if(n > 0) { DrawLSystem(screen, l*0.6, d+random()%40+30, n-1); DrawLSystem(screen, l*0.6, d-random()%40-30, n-1); DrawLSystem(screen, l*0.7, d+random()%30, n-1); } MoveRel(dx, dy) }
SDL_Surface는 정확한 비교는 아니지만 Windows에서는 HDC에 해당한다.
그 결과이다. 상당한 짧은 코드에 비해서 그 결과는 자못 화려하다. 🙂