美文网首页Python 文库
turtle - turtledemo - round_danc

turtle - turtledemo - round_danc

作者: 巭牛猫 | 来源:发表于2021-03-02 09:19 被阅读0次
    【 旋 转 的 三 角 形 】
    """      turtle-example-suite:
    
             tdemo_round_dance.py
    
    (Needs version 1.1 of the turtle module that
    comes with Python 3.1)
    
    Dancing turtles have a compound shape
    consisting of a series of triangles of
    decreasing size.
    
    Turtles march along a circle while rotating
    pairwise in opposite direction, with one
    exception. Does that breaking of symmetry
    enhance the attractiveness of the example?
    
    Press any key to stop the animation.
    
    Technically: demonstrates use of compound
    shapes, transformation of shapes as well as
    cloning turtles. The animation is
    controlled through update().
    """
    
    from turtle import *
    
    def stop():
        global running
        running = False
    
    def main():
        global running
        clearscreen()
        bgcolor("gray10")
        tracer(False)
        shape("triangle")
        f =   0.793402
        phi = 9.064678
        s = 5
        c = 1
        # create compound shape
        sh = Shape("compound")
        for i in range(10):
            shapesize(s)
            p =get_shapepoly()
            s *= f
            c *= f
            tilt(-phi)
            sh.addcomponent(p, (c, 0.25, 1-c), "black")
        register_shape("multitri", sh)
        # create dancers
        shapesize(1)
        shape("multitri")
        pu()
        setpos(0, -200)
        dancers = []
        for i in range(180):
            fd(7)
            tilt(-4)
            lt(2)
            update()
            if i % 12 == 0:
                dancers.append(clone())
        home()
        # dance
        running = True
        onkeypress(stop)
        listen()
        cs = 1
        while running:
            ta = -4
            for dancer in dancers:
                dancer.fd(7)
                dancer.lt(2)
                dancer.tilt(ta)
                ta = -4 if ta > 0 else 2
            if cs < 180:
                right(4)
                shapesize(cs)
                cs *= 1.005
            update()
        return "DONE!"
    
    if __name__=='__main__':
        print(main())
        mainloop()
    

    内容来源:官方文库
    牛猫名言:最好的资料就是官方文档


    本文链接:https://www.jianshu.com/p/264ea3c0561b
    转载请注明,谢谢!
    编辑:牛猫大侠


    相关文章

      网友评论

        本文标题:turtle - turtledemo - round_danc

        本文链接:https://www.haomeiwen.com/subject/soltqltx.html