Tacker.Lee 发表于 2020-3-29 22:13:51

各位大佬求解答,代码如图!!

本帖最后由 Tacker.Lee 于 2020-3-30 00:48 编辑

import turtle

def fenxingshu(changdu):

    '''绘制分形树的树枝'''


    if changdu > 5:
      '''绘制'''
      turtle.forward(changdu)
      turtle.right(20)
      fenxingshu(changdu-15)

      '''绘制左侧树枝'''
      turtle.left(40)
      fenxingshu(changdu-15)

      '''向回转20,并换一条线'''
      turtle.right(20)
      turtle.color('brown')
      turtle.backward(changdu)

def main() :
    #主函数

    turtle.left(90)
    turtle.penup()
    turtle.backward(150)
    turtle.pendown()
    turtle.color('brown')
    fenxingshu(100)
    turtle.exitonclick()

if __name__ == '__main__':
    main()各位大佬你们好!


代码如图2

我想实现最小的树枝,那段变成绿色的,感觉像有叶子一样

我的逻辑思维真心跟不上,求各位大佬解答

小弟 先谢谢了

xiangjianshinan 发表于 2020-3-29 23:01:36

考我们输入代码吗?

如我这样的小白,图片调试不了。

Tacker.Lee 发表于 2020-3-30 00:49:26

xiangjianshinan 发表于 2020-3-29 23:01
考我们输入代码吗?

如我这样的小白,图片调试不了。

其实,就是简单地函数调用!嘻嘻

xiangjianshinan 发表于 2020-3-30 01:46:11

import turtle,random

def fenxingshu(changdu):

    '''绘制分形树的树枝'''


    if changdu > 5:
      '''绘制'''
      if changdu<= 20:
            turtle.color('green')
            turtle.pensize(random.randint(0,3))
      else:
            turtle.color('brown')
            turtle.pensize(3)
      turtle.forward(changdu)
      turtle.right(20)
      fenxingshu(changdu-15)

      '''绘制左侧树枝'''

      turtle.left(40)
      fenxingshu(changdu-15)


      '''向回转20,并换一条线'''
      turtle.right(20)
      turtle.penup()
      turtle.backward(changdu)
      turtle.pendown()

def main() :
    #主函数
    turtle.screensize(800, 600, "black")
    turtle.left(90)
    turtle.penup()
    turtle.backward(150)
    turtle.pendown()
    turtle.color('brown')
    turtle.pensize(5)
    fenxingshu(100)
    turtle.exitonclick()

if __name__ == '__main__':
    main()

xiangjianshinan 发表于 2020-3-30 01:46:44

若是可行,请采纳!!!{:10_277:}

xiangjianshinan 发表于 2020-3-30 02:06:13

import turtle,random

def fenxingshu(changdu):

    '''绘制分形树的树枝'''


    if changdu > 5:
      '''绘制'''
      temp = changdu
      if changdu<= 20:
            turtle.color('green')
            turtle.pensize(random.randint(0,3)) #树尖的大小不一样。
            temp = changdu+random.randint(0,40)#树尖的长度不一样。
            if random.randint(0,10)==1:
                turtle.color('brown') #偶尔有几茬不是绿色的树尖。
      else:
            turtle.color('brown')
            turtle.pensize(3)
      turtle.forward(temp)
      turtle.right(20)
      fenxingshu(changdu-15)

      '''绘制左侧树枝'''

      turtle.left(40)
      fenxingshu(changdu-15)


      '''向回转20,并换一条线'''
      turtle.right(20)
      turtle.penup()
      turtle.backward(temp)
      turtle.pendown()

def main() :
    #主函数
    turtle.screensize(800, 600, "black")
    turtle.left(90)
    turtle.penup()
    turtle.backward(150)
    turtle.pendown()
    turtle.color('brown')
    turtle.pensize(5)
    fenxingshu(100)
    turtle.exitonclick()

if __name__ == '__main__':
    main()
页: [1]
查看完整版本: 各位大佬求解答,代码如图!!