Как нарисовать рекурсивную кривую Серпинского, используя python графику черепахи в коде Visual Studio - PullRequest
0 голосов
/ 14 февраля 2020

Привет. Я пытаюсь нарисовать рекурсивную кривую стрелки Серпинского, используя графику черепахи в python в коде Visual Studio. Я могу получить форму basi c очень хорошо, но я не могу заставить ее вращаться правильно, чтобы сформировать треугольник Серпинского. Вот мой код:

from turtle import * 
def arrowhead(level, length):
    if level == 1:
       rt(-60)
       fd(length)
       rt(60)
       fd(length)
       rt(60) #Basic shape for level 1 
    else:
       arrowhead(level-1, length/2)
       rt(60)
       for i in range(3):
           arrowhead(level-1, length/2)
           lt(-60)
       for i in range(3):
           arrowhead(level-1, length/2)
           rt(-60)
       arrowhead(level-1, length/2)
       lt(60)
       arrowhead(level-1, length/2)

arrowhead(4, 400)

1 Ответ

0 голосов
/ 27 марта 2020

Попробуйте:

import turtle 

def seg(level, step, angle):
    if level>0:
        seg(level-1, step/2, -angle)
        T.rt(angle)
        seg(level-1, step/2,  angle)
        T.rt(angle)
        seg(level-1, step/2, -angle)
    else:
        T.fd(step)


# Main Code
turtle.bye()
T = turtle.Turtle()   
T.speed(10)
d = 220
b = 300
for level in range(7):
    T.penup()
    T.setpos((d*int(level/3)-b, d*(level%3)-b)) # pick new starting point
    T.setheading(0)                         # reset heading
    T.pendown()
    if level%2==1: # is level odd or even? if even than ...
        T.lt(60)
    seg(level, 200, 60)

и получите этот участок

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...