거북이가 그리는 기하적 패턴

수학이야기 2020. 12. 15. 11:14
반응형

블로그 스킨을 만들 때 간단함을 추구한다. 하지만 가끔은 너무 밋밋해 보일 때가 있다. 기분에 따라 옷을 갈아입듯이 블로그 스킨도 조금씩 다르게 보이게 하고 싶다. 이럴 때 배경을 바꾸는 것은 어떨까? 화려하고 멋진 사진으로 넣어도 좋겠지만 시선을 뺏지 않으면서 살짝 변화만 주고 싶다면 패턴을 넣는 것이 낫다. 그래서 헤더에 무늬를 넣어 보았다.

아무래도 패턴은 기하로 만드는 것이 낫겠다 싶어 이런저런 패턴을 구경하다가 갑자기 거북이가 떠올랐다. 내게는 똑같은 일을 아무 말 없이 되풀이하는 착한 거북이 있었다.

suhak.tistory.com/472

 

파이썬(python)으로 거북 수학

이제 코딩 시대가 시작되고 있다. 물론 컴퓨터 전문가는 이미 오래 전부터 코딩을 하고 있었다. 코딩 시대엔 컴퓨터 프로그래밍을 하지 못하면 글을 모르는 것과 마찬가지인 시대를 뜻한다. 우

suhak.tistory.com

먼저 정n 다각형을 그리는 함수를 만들고 시험해 본다.

>>> def poly(n,len):
              for i in range(n):
                      t.fd(len);
                      t.lt(360/n);

>>> poly(4,50)
>>> poly(5,50)

상당히 간단한 함수지만 이걸로 여러 가지 패턴을 만들 수 있다.

먼저 $n=4$일 때로 연습을 하고 점점 더 큰 숫자로 만들기로 하자.

정사각형은 밋밋하니까 직사각형으로 만들어 보자.

>>> def repeat(m,n,len):
         for i in range(m):
                 poly(n,len);
                 t.fd(len/2);
>>> repeat(6,4,100) 

다음은 패턴 함수를 만들자.

>>> def pat(m,n,len):
              for i in range(m):
                        repeat(m,n,len);
                        t.lt(360/m);
>>> pat(4,4,200)

이제 함수 pat(m,n,len)의 변수를 바꾸면서 다양한 패턴을 만들어 보자.

pat(5,5,100)

패턴을 다시 반복해서 더 복잡한 패텬을 만들 수 있다.

>>> for i in range(3):
             pat(6,6,50);
             t.rt(360/3);

한발 더 나가서 patt함수를 만들어 보자.

>>> def patt(m,n,l,len):
               for i in range(m):
                       for k in range(l):
                               pat(m,n,len);
                               t.rt(360/l);

>>> patt(6,6,6,25)

하나 더 그렸다.

이제 위에 있는 그림을 아래와 같이 잘랐다. 이 녀석을 배경화면으로 넣어 보기로 하자.

거북이와 함께 라면 아라베스크나 꽃살문 만들기 어렵지 않다.^^ 이제 색만 잘 조정하면 배경 벽지로 쓸 만 한 패턴이 나온다.

다른 걸로 하나 더 만들어 보자.

아래를 그리느라 시간 좀 걸렸다. 헤더 배경 패턴으로 넣어 보았다.

반응형