본문 바로가기
  • Top Genius in the world
알고리듬

[알고리듬] #88 자 그리기

by Mr.Algo 2025. 1. 7.
728x90
반응형

파이썬 실습창을 열 수 있습니다.실습창 열기

자 그리기

위와 같은 자(ruler)를 그릴 수 있겠는가?

리커시브(recursive) 구조를 찾아보라.

어떤 규칙(rule)으로 그려졌는가?

 

더보기

1. 가로선의 가운데 세로선을 그었다.

2. 방금 그은 세로선의 왼쪽 부분과 오른쪽 부분의 가운데에 세로선을 그었다. 세[로선의 굵기와 두께는 짧아지고 가늘어 진다.

3. 위의 과정을 반복한다.

위의 그림을 그리기 위해서 알아야할 정보는 무엇인가?

더보기

1. 가로선의 시작과 끝점의 좌표

2. 가운데 세로선의 각도, 길이, 두께

3. 반복 회수

 

이러한 것이 함수의 인수이다.

그림을 그려보라.

더보기
def ruler(n,i,j,h,w):
    if n==0:return
    m=(i+j)//2
    width(w)
    up(); goto(m,0); down(); fd(h)  # 세로선을 그린다.
    ruler(n-1,i,m,h*0.8,w*0.8);     # 왼쪽의 세로선
    ruler(n-1,m,j,h*0.8,w*0.8)      # 오른쪽의 세로선
from turtle import*
shape('turtle')
color('green')
speed(0)
up(); goto(-300,0); down(); fd(600)
lt(90)
ruler(5,-300,300,100,10) # 반복 회수, 가로선의 왼쪽 끝 좌표, 오른쪽 끝 좌표, 길이, 두께
ht()
done()

그림을 그리는 전체적인 흐름에 대하여 감을 잡자.

'세로의 가운데에 선을 긋고, 왼쪽 부분과 오른쪽 부분에 대하여 같은 동작을 반복한다.'

이 말을 이해하면 성공!

 

수고하셨습니다.

안녕!

 

728x90
반응형