드래곤 곡선

C 곡선의 알고리즘을 조금만 수정하면 아래와 같은 프랙탈을 얻을 수 있다. 모양이 대충 용 비슷하다. 그래서 이름이 드래곤 곡선이다. 아래의 그림은 각각의 차수가 10 과 15인 그림이다.

알고리즘

드래곤 곡선은 차수 1 의 C 곡선을 위, 아래로 번갈아 가면서 그리는 알고리즘을 사용한다.

  • 드래곤 곡선 위를 그리는 알고리즘

    1. 왼쪽으로 45 도 회전한다.

    2. 드래곤 곡선의 윗부분의 루틴을 호출한다.

    3. 오른쪽으로 90도 회전한다.

    4. 드래곤 곡선을 아랫부분의 루틴을 호출한다.

    5. 왼쪽으로 45 도 회전한다.

  • 드래곤 곡선 아래를 그리는 알고리즘

    1. 오른쪽으로 45 도 회전한다.

    2. 드래곤 곡선의 윗부분의 루틴을 호출한다.

    3. 왼쪽으로 90 도 회전한다.

    4. 드래곤 곡선의 아랫부분의 루틴을 호출한다.

    5. 오른쪽으로 45 도 회전한다.

아래는 위의 알고리즘을 코드로 표현한 것이다.

드래곤 곡선은 양방향 재귀성이다. DragonCurve_up() 내에서 DragonCurve_down() 을 부르고, DragonCurve_up() 도 재귀적으로 돌고 DragonCurve_down() 도 재귀적으로 돈다. 아래는 드래곤 곡선을 구현한 프로그램 결과와 전체 코드이다. 색상이 들어가 있는 그림은 거북이가 이동한 점을 표시해 본 것이다.

Last updated

Was this helpful?