2014-11-15 3 views
0

Эй, я пытаюсь инвертировать треугольник Серпинского в Python для класса, я новичок в python и черепахе api. Мне было интересно, сможет ли кто-нибудь объяснить, как работают точки в функции goto, так как мне трудно понять, как правильно отобразить перевернутый треугольник. (Этот код был предоставлен мне, и я только немного его модифицировал).Sierpinski Triangle Inversion

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 = ['cyan','purple','orange','navy','gold', 
       'firebrick','lawn green'] 
    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 = [[-200,-100],[0,200],[200,-100]] 
    sierpinski(myPoints,3,myTurtle) 
    myWin.exitonclick() 

main() 

ответ

1

Это как Coords выглядеть (когда вы запустите ваш код): enter image description here

В вашем main(), просто изменить первоначальную myPoints от

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

к:

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

enter image description here

+0

Большое спасибо, сэр. –

+0

Без проблем Райан Хаттон – kartikg3

Смежные вопросы