简体   繁体   English

如何在 Visual Studio Code 上使用 python 海龟图形绘制递归谢尔宾斯基箭头曲线

[英]How do I draw recursive Sierpiński arrowhead curve using python turtle graphics on Visual Studio Code

Hi I am trying to draw a recursive Sierpiński arrowhead curve using turtle graphics in python on Visual Studio Code.嗨,我正在尝试在 Visual Studio Code 上使用 Python 中的海龟图形绘制递归谢尔宾斯基箭头曲线。 I can get the basic shape just fine but I can't seem to make it rotate correctly to form the sierpinski triangle.我可以很好地获得基本形状,但似乎无法正确旋转以形成谢尔宾斯基三角形。 Here's my code:这是我的代码:

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)

Try:尝试:

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)

and got this plot并得到了这个情节

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM