请各路大神解释代码

发布时间:2019-08-01 04:26:07

f = (10**0.5-1)/2.0

d = 3 * cos(3*pi/10)

def kite(l):

    fl = f * 2

    lt(36)#左转

    fd(l)#q

    rt(108)

    fd(fl)

    rt(36)

    fd(fl)

    rt(108)

    fd(l)

    rt(144)

def dart(l):

    fl = f * 2

    lt(36)

    fd(l)

    rt(144)

    fd(fl)

    lt(36)

    fd(fl)

    rt(144)

    fd(l)

    rt(144)

def inflatekite(l, n):

    if n == 0:

        px, py = pos()

        h, x, y = int(heading()), round(px,3), round(py,3)

        tiledict[(h,x,y)] = True

        return

    fl = f * l

    lt(36)

    inflatedart(fl, n-1)

    fd(l)

    rt(144)

    inflatekite(fl, n-1)

    lt(18)

    fd(l*d)

    rt(162)

    inflatekite(fl, n-1)

    lt(36)

    fd(l)

    rt(180)

    inflatedart(fl, n-1)

    lt(36)

def inflatedart(l, n):

    if n == 0:

        px, py = pos()

        h, x, y = int(heading()), round(px,3), round(py,3)

        tiledict[(h,x,y)] = False

        return

    fl = f * l

    inflatekite(fl, n-1)

    lt(36)

    fd(l)

    rt(180)

    inflatedart(fl, n-1)

    lt(54)

    fd(l*d)

    rt(126)

    inflatedart(fl, n-1)

    fd(l)

    rt(144)

def draw(l, n, th=2):

    clear()

    l = l * f**n

    shapesize(l/100.0, l/100.0, th)

    for k in tiledict:

        h, x, y = k

        setpos(x, y)

        setheading(h)

        if tiledict[k]:

            shape("kite")

            color("black", (0, 0.75, 0))

        else:

            shape("dart")

            color("black", (0.75, 0, 0))

        stamp()

def sun(l, n):

    for i in range(5):

        inflatekite(l, n)

        lt(72)

def star(l,n):

    for i in range(5):

        inflatedart(l, n)

        lt(72)

def makeshapes():

    tracer(0)

    begin_poly()

    kite(100)

    end_poly()

    register_shape("kite", get_poly())

    begin_poly()

    dart(100)

    end_poly()

    register_shape("dart", get_poly())

    tracer(1)


推荐回答

还没有选出推荐答案,请稍候访问或查看其他回答!
以上问题属网友观点,不代表本站立场,仅供参考!