zoukankan      html  css  js  c++  java
  • 分形树的绘制——python第二课

    一、绘制五角星

    1. 引入turtle

     

    '''
        作者:兰兰兰
        功能:五角星绘制
        版本:1.0
        日期:02/09/2018

    '''
    import turtle

    def main ():
        '''
            主函数
        '''
        i = 1
        while i <= 5:
            turtle.forward(50)
            turtle.right(144)
            i = i+1
        turtle.exitonclick()


    if __name__ == "__main__":
        main()

    1. Turtle库函数

       Turtle.forward(x)   向前划x

       Turtle.backward(x)

       Turtle.right(x)      向右转x°

       Turtle.left(x)

       Turtle.exitonclick()  点击关闭画布

       Turtle.penup()     抬起画笔

       Turtle.pendown()   放下画笔

       Turtle.pencolor(‘s’)  画笔颜色,参数为字符串

     

    二、重复绘制不同大小的五角星(递归函数)

    1. 使用迭代函数

    '''
        作者:兰兰兰
        功能:五角星绘制
        版本:2.0
        日期:02/10/2018
        2.0新增功能:用迭代函数绘制重复不同大小的五角星

    '''
    import turtle

    def draw_pentagon_pentagram(size):
        # 绘制五角星
        # 计数器
        i = 1
        while i <= 5:
            turtle.forward(size)
            turtle.right(144)
            i = i + 1
        if size <= 200:
            size += 20
            draw_pentagon_pentagram(size)
    def main ():
        '''
            主函数
        '''
        turtle.penup()
        turtle.backward(100)
        turtle.pendown()
        turtle.pensize(1.5)
        turtle.pencolor('yellow')

        size = 50
        #绘制五角星
        draw_pentagon_pentagram(size)

        turtle.exitonclick()


    if __name__ == "__main__":
        main()

     

     

    1. 递归函数

    在函数中调用本身的方式,达到终止条件,各层逐层结束运算

     

     

    三、分形树的绘制

    1. 使用递归函数绘制分形树

       

    '''
        作者:兰兰兰
        功能:利用递归函数分形树绘制
        版本:1.0
        日期:02/11/2018
    '''

    import turtle

    def draw_branch(branch_length):
        '''
            绘制分形树
        '''

        if branch_length >=5:
            # 设置树梢为绿色,树干为棕色
            if (branch_length-15) <= 5:
                turtle.pencolor('green')
            else:
                turtle.pencolor('brown')
            #绘制右侧树枝
            turtle.pendown()
            turtle.forward(branch_length)
            print('向前',branch_length)
            turtle.right(20)
            print('向右转20度')
            draw_branch(branch_length-15)

            #绘制左侧树枝
            turtle.left(40)
            print('向左转40度')
            draw_branch(branch_length-15)


            #返回之前的树枝
            turtle.penup()
            turtle.rt(20)
            print('向右转20度')
            turtle.backward(branch_length)
            print('向后',branch_length)


    def main():
        '''
            主函数

        '''

        #画笔粗细
        turtle.pensize(2)
        #初始位置
        turtle.left(90)
        turtle.penup()
        turtle.backward(100)
        turtle.pendown()
        #调用函数绘制分形树
        draw_branch(100)

        turtle.exitonclick()

    if __name__ == '__main__':
        main()

     

     

     

     

     

  • 相关阅读:
    农民没有钱,怎样从种植养殖方面创业?
    有几万闲钱,投资什么好?
    2019适合创业的项目有哪些呢
    1981年的五块钱相当于现在多少钱的购买力?
    现阶段有50万资金,想去开一个店,从事什么行业好?
    投资40万左右适合做什么?
    阿里联手百联打造新零售,耗巨资10亿成立便利店
    90后,是被逼创业的,大家觉得呢?
    小本创业,具体怎么办?
    (三)调用web服务
  • 原文地址:https://www.cnblogs.com/lanzhiyuan/p/8441152.html
Copyright © 2011-2022 走看看