Silverback9

#야생으로

Creative Coding 독학 제223일 2024년11월05일(화)

오늘은 프랙탈 나무를 만드는 또다른 수학을 공부해 보겠습니다~~^^*

바로~~~^^*

바로~~~!!!

바로!!!

L-System입니다~~~!!!!

참 신기한 수학의 세계가 또 우리 앞에 있네요~^^*

L-System의 기본 항목들을 간단하게 손으로 그려보며 이해해 보는 시간을 가져 볼까 해요~~^^*

  1. 조류식물~~^^*

변수는 A와 B입니다. 상수는 없습니다. A로 시작합니다. A는 AB로 B는 A로 바뀝니다.

2. 프랙탈 양갈래 나무~^^*

변수는 1과 0입니다. 상수는 “[“과 “]”입니다. 시작은 0입니다. 0은 1[0]0으로 변하고 1은 11로 변합니다.

0은 나뭇가지 끝자락을 의미합니다. 잎이 나올 자리입니다.

1은 나무줄기를 의미합니다. 그래서 1은 선을 그리고 나서 가만히 있습니다.

“[“는 push가 시작되고 45도 왼쪽으로 회전합니다.

“]”은 pop이 작동되고 45도 오른쪽으로 회전합니다.

“[” 와 “]”은 stack의 push와 pop기능을 하여, [ ] 사이의 명령어를 수행하고 다시 제자리로 돌아오는 기능을 합니다.

프랙탈 나뭇가지 만들 때 함수 push()와 pop()을 사용했던 것이 떠올려지신다구요~^^*?

네~^^* 그런 것 같아요~~^^*

친숙해진 작업절차를 또 만나니 반갑네요~~^^*

즉, [0]은 왼쪽으로 45도 회전해서 나뭇끝자락을 그리고 제자리로 돌아와서 오른쪽으로 45도 회전한다는 의미가 됩니다~~^^*

1은 “11”로 변화하고, 0은 “1[0]0″로 변화합니다. 즉, 나뭇줄기 1은 길이가 2배 길어지고, 줄기끝자락 0은 줄기가 1 자란 후 왼쪽으로 45도 회전해서 줄기끝자락을 그리고 제자리로 돌아와 오른쪽으로 45도 회전해서 나무끝자락을 그립니다.

오늘은 조류식물과 플랙탈 나무 그리기를 위한 L-System을 이해해 보는 것으로 마무리하면 어떨까요?^^*

단순한 변화 구조가 세대를 거듭하면서 점점 복잡한 형태를 만들어 나가는데요~^^*

초기 세대들의 변화 과정을 이해해 보면, 반복 구조 속의 단순한 코드가 실제로는 어떤 작업절차를 거치게 되는지를 더 잘 상상해낼 수 있을 것 같아요^^*

그래서~~ 손으로 단순규칙의 반복 적용과정을 따라가 보았습니다~^^*

손으로 그려보는 작업은~~^^*

프랙탈 나무 같은 경우는, 특히, “[“와 “]”의 작용의 의미를 이해하는데 매우 도움이 되는 시간이 될 수 있는 것 같아요~^^* “[“와 짝지어진 “]”가 언제 작동되는 지를 따라가 보니~^^* stack의 push()-pop() 함수 관계와 작용이 더 잘 이해되는 것 같아요~~^^*

우리가 원리를 잘 이해하게된 이제는~~^^* 컴퓨터에게 단순절차의 복잡한 반복의 작업을 마음 편하게 맡겨 놓을 수 있을 것 같기도 하구요~~^^*

오늘 저의 오른손을 함께 쥐고 그림을 차근차근 그려 주셔서 감사합니다~^^*

내일은 우리~~^^* 다른 종류의 L-System을 또 만나 볼까요~~^^*

참~~^^* 세상은 호기심을 가지고 들여다 보면~^^* 새롭게 궁금해 지는 것들이 더 많이 보이는 것 같아요~~^^*

세상은 참 신기하고 그래서 더욱 아름답게 느껴지는 아침입니다~~^^*

오늘도 이 멋진 세상에서~^^* 멋진 아침! 멋진 하루! 보내시고요~~^^*

우리 내일 또 만나요~~^^*

네~!!! 꿈은 이루어 집니다~~!!!

댓글 남기기