엑셀로 프랙탈 그리기   

2009. 12. 19. 10:45

프랙탈(Fractal)이란, 자기유사성(self-similarity)를 가지면서 끊임없이 반복되는 패턴을 의미합니다. 혼돈 이론(카오스 이론)과 밀접하게 관련이 있지요.

프랙탈 이미지를 보면 그걸 어떻게 그릴까, 어렵게 느껴지는데 여러분이 표 계산을 사용할 때 쓰는 엑셀(excel)로도 프랙탈을 그릴 수 있습니다. 비주얼 베이직(Visual Basic)을 좀 알아야 한다는 어려움이 있긴 하지만, 몰라도 쉽게 따라할 수 있습니다.

이렇게 해 보세요.

1. 엑셀을 엽니다.
2. sheet 전체를 선택한 다음, 행 높이를 4.5, 열 너비를 0.4 정도로 작게 설정합니다.
3. '도구 > 매크로 > Visual Basic Editor'를 클릭합니다. 새로운 창이 하나 뜹니다.
4. 새롭게 뜬 창에서, '보기 > 코드' 를 클릭하면 빈 편집 공간이 나타납니다.
5. 거기에 다음의 코드를 넣습니다.

Sub bin_sip()
Cells.Interior.ColorIndex = xlNone
Const xcell = 150
Const ycell = 150
Dim x, y
  For x = 1 To xcell
    For y = 1 To ycell
       If (x + y And Abs(x - y)) = 0 Then
           ActiveSheet.Cells(x, y).Interior.ColorIndex = 1
       End If
    Next
   Next
End Sub

6. '실행 > 매크로 실행' 을 클릭합니다.
7. excel sheet로 가보면 아래와 같은 그림이 나타납니다. (이 그림은 '시어핀스키' 삼각형과 유사합니다.)


8. 다른 프랙탈 이미지를 얻으려면, 위의 코드에서 빨갛게 표시된 부분을 바꿔 주면 됩니다.
    그 부분을 다음의 것들로 바꾸면 다양한 프랙탈을 볼 수 있습니다.

(x + y And Abs(Int(Sqr(x)) - Sqr(y))) = 0


(x * x * x + y * y * y And 8) = 8


그 밖에 다음과 같은 식을 넣어보세요. 이 식 이외에 여러분이 마음대로 바꿔 봐도 됩니다. 단, x, y, And, = 의 패턴을 유지해야 합니다.

(x * y And y / x) = 0
(x * y + y * x And 12) = 12
(x * x * y + x * y * y And 20) = 20
(x * x / y + y * y / x And 32) = 32
(x * x + y * y And 100) = 100

프랙탈 이미지는 보면 볼수록 신비롭고 경이롭습니다. 주말에 엑셀로 프랙탈 이미지를 만들어 보면 재미있을 겁니다. ^^


** 이 글이 업무에 도움이 된다면 '자발적 원고료'로 글쓴이를 응원해 주세요. **
(카카오톡 > 더보기 > 결제) 클릭 후, 아래 QR코드 스캔



혹은 카카오뱅크 3333-01-6159433(예금주: 유정식)

Comments

  1. Favicon of http://ibrik.kr BlogIcon ibrik 2009.12.20 01:41

    주말 새벽, 바흐의 골드베르크 변주곡을 틀어놓고 알려주신 방법으로 프랙탈 이미지를 그려보고 있습니다. 음악과 묘하게 어울리면서 시간 가는 줄 모르게 하는 듯합니다. :)

    perm. |  mod/del. |  reply.
    • Favicon of https://infuture.kr BlogIcon 유정식 2009.12.20 20:35 신고

      바흐의 음악도 프랙탈이죠. 환상의 음악을 프랙탈과 함께 하셨군요. ^^

  2. 박종문 2010.01.07 09:52

    비주얼베이직을 못하는 사람으로써..
    너무 신기하네요 ㅎㅎ

    perm. |  mod/del. |  reply.