크리에이티브 커먼즈 라이선스
Creative Commons License

예전에 무슨 책에서 봤던건데...그림에 나와있는게 전부지만 그리는 과정을 순서대로 따라가 보자능. 

일단 첫번째 나무가지(그러니까 기둥??)의 길이 L1을 대충 정의하고 시작하자능 Θ1은 0.5π 로 시작하고....적당한 위치에서 L1 길이만큼 Θ1의 각도로 뻗어올리는게 첫번째 단계라능.

그다음에 적당한 Scale factor를 L1에 곱해서 L2를 구해내자능. Scale factor는 0에서 1사이의 값이면 적당한데...너무 작으면 두번째 가지가 너무 짧아짐 -_-;;. 그러구나서 Θ1에 적당한 값(Turn)을 더해서 Θ2를 만들어 낸후에...첫번째 가지가 끝나는 지점에서 L2길이만큼 Θ2의 각도로 끄시면 두번째 가지가 만들어 진다능. 이 과정을 길이가 적당히 짧아질때까지..혹은 적당한 획수만큼 반복하면 나무가 그려진다능.

다만 내가 위에 쓴데루 똑같이 따라하면 가지가 한쪽...그러니까 왼쪽으로만 뻗침 -_-;;; 이럴땐 두번째 가지를 그릴때 Θ1에 적당한 값을 빼서 Θ2` 를 만들어서 L2 길이만큼 뻗어내면 된다능. 결국 대문자 Y모양을 계속 그려서 나무를 그려내게 되는거심 >_<.

Scale하구 Turn을 상수로 값으로 사용해서 나무를 그리면 완벽한 좌우 대칭 나무가 나오는데...이것두 나름 볼만하지만...매 단계마다 두 값을 다르게 랜덤값으로 그리면 적절한 모양의 나무가 그려진다능.

그럼 내가 ruby sdl로 구현한 허접한 코드를 보자능. >_<. 능력자는 OpenGL따위를 동원해서 3차원으로 한번 그려보라능

코드보기

코드보기



실행 동영상은 여기로 가삼.  http://www.filepang.co.kr/entry/프랙탈-나무-그리기
윈도우용 실행파일

저작자 표시 비영리 동일 조건 변경 허락

'튜토리얼 > 프렉탈 나무그리기' 카테고리의 다른 글

프렉탈 나무 그리는법  (0) 2009/02/26

댓글을 달아 주세요