2014-11-17 2 views
-1

이 파이썬 코드는 sierpinski 삼각형을 그립니다. 그것은 주요 삼각형을 그려 시작하고 내가하고 싶은 것은되도록 전체 삼각형 더 큰 내 코드를 수정이다 작은 문자이 파이썬 코드는 어떻게 수정합니까?

import turtle 

def drawTriangle(points,color,myTurtle): 
    myTurtle.fillcolor(color) 
    myTurtle.up() 
    myTurtle.goto(points[0][0],points[0][1]) 
    myTurtle.down() 
    myTurtle.begin_fill() 
    myTurtle.goto(points[1][0],points[1][1]) 
    myTurtle.goto(points[2][0],points[2][1]) 
    myTurtle.goto(points[0][0],points[0][1]) 
    myTurtle.end_fill() 

def getMid(p1,p2): 
    return ((p1[0]+p2[0])/2, (p1[1] + p2[1])/2) 

def sierpinski(points,degree,myTurtle): 
    colormap = ['red','turquoise','green','purple','Antique White 4', 
       'white','black'] 
    drawTriangle(points,colormap[degree],myTurtle) 
    if degree > 0: 
     sierpinski([points[0], 
         getMid(points[0], points[1]), 
         getMid(points[0], points[2])], 
        degree-1, myTurtle) 
     sierpinski([points[1], 
         getMid(points[0], points[1]), 
         getMid(points[1], points[2])], 
        degree-1, myTurtle) 
     sierpinski([points[2], 
         getMid(points[2], points[1]), 
         getMid(points[0], points[2])], 
        degree-1, myTurtle) 

def main(): 
    myTurtle = turtle.Turtle() 
    myWin = turtle.Screen() 
    myPoints = [[-100,-50],[0,100],[100,-50]] 
    sierpinski(myPoints,3,myTurtle) 
    myWin.exitonclick() 

main() 

의 무리를 그립니다. 크기를 변경하기 위해 내가 무엇을 바꾸어야하는지 잘 모르겠습니다.

+0

'myPoints'를 변경 하시겠습니까? – grc

답변

2

main() 메소드에서 myPoints 변수를 사용해보십시오.

myPoints = [[-100,-50],[0,100],[100,-50]] 

과의 세트는 어쩌면

myPoints = [[-200, -100],[0,200],[200,-100]] 

또는 그 라인을 따라 뭔가로 변경합니다. 나는 그것을 실행하지는 않았지만 그 값들이 당신의 삼각형의 크기를 결정한다는 것을 확신합니다.

2

main 메서드 내에서 myPoints의 값을 변경하려고합니다. 이 목록 목록은 두 번째 인수로 sierpinski()에게 전달됩니다.

myPoints = [[-200, -50], [0, 200], [200, -50]] 
sierpinski(myPoints, 2, myTurtle) 

myPoints 목록에서 세 가지 목록의 각 삼각형의 특정 지점 중심에서 될 거리를 나타냅니다 예를 들어, myPoints을 정의하는 것은 아래는 코드에서와 같이 두 배나 큰 삼각형을 만든다 화면의. 중앙의 왼쪽 (-X)에

  1. 200 픽셀 및 (-Y)
  2. 200 화소, 상기 중앙 아래 50 개 픽셀 다음과 같이 상기 myPoints 들어, 삼각형의 점 그려 당신이 [[-200, -50], [0, 250], [200, -50]]와 정삼각형을 만들 수 있습니다 - 중앙의 오른쪽에있는 센터
  3. 200 개 픽셀 및 중앙 아래 50 개 픽셀
  4. 당신이 원하는 경우

, 당신은 또한 삼각형은 정삼각형 더 이상하지 않도록이 문제를 수정할 수 있습니다 ,가있는 스켈레톤 삼각형. 다른 값의로드를 시도하고 어떤 일이 발생하는지 확인하십시오!