2016-08-09 7 views
3

내가 파이썬의 거북을 사용하여이어떻게 파이썬 거북이

enter image description here

처럼 보이는 타일 정삼각형을 끌기 위해 노력하고 기와 삼각형을 그립니다. 나는 16,25,36,49 또는 64 개의 삼각형을 가질 수 있기를 바란다.

거북이를 한 삼각형에서 다음 삼각형으로 깔끔하게 옮기는 방법을 찾지 못했기 때문에 처음 시도가 번거롭다. 여기

내 (부분적으로 올바른) 코드

def draw_triangle(this_turtle, size,flip):  
    """Draw a triangle by drawing a line and turning through 120 degrees 3 times""" 
    this_turtle.pendown() 
    this_turtle.fill(True) 
    for _ in range(3): 
     if flip: 
      this_turtle.left(120) 
     this_turtle.forward(size) 
     if not flip: 
      this_turtle.right(120) 
    this_turtle.penup() 

myturtle.goto(250,0) 
for i in range(4): 
    for j in range(4): 
     draw_triangle(myturtle, square_size,(j%2 ==0)) 
     # move to start of next triangle 
     myturtle.left(120) 
     #myturtle.forward(square_size) 

    myturtle.goto(-250,(i+1)*square_size) 

이 일의 우아한 방법이 있어야합니다입니까?

답변

1

거북이가 이동하고 점프하지 않고 그림을 그려야하는 경우 수정하면 재미있는 문제가 발견되었습니다.

내가 찾은 해결책은 추한,하지만 그것은 출발점이 될 수 있습니다 ...

def n_tri(t, size, n): 
    for k in range(n): 
     for i in range(k-1): 
      t.left(60) 
      t.forward(size) 
      t.left(120) 
      t.forward(size) 
      t.right(180) 
     t.left(60) 
     t.forward(size) 
     t.right(120) 
     t.forward(k * size) 
     t.left(60) 
    t.right(180) 
    t.forward(n * size) 
    t.right(180) 

당신은 패턴이 here

+0

멋진 아이디어를 어떻게 보이는지 확인할 수 있습니다. 이런 식으로 생각하지 않았습니다. – user2175783