鱼C论坛

 找回密码
 立即注册
查看: 1427|回复: 5

[已解决]各位大佬求解答,代码如图!!

[复制链接]
发表于 2020-3-29 22:13:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

  2. def fenxingshu(changdu):

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


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

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

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

  16. def main() :
  17.     #主函数

  18.     turtle.left(90)
  19.     turtle.penup()
  20.     turtle.backward(150)
  21.     turtle.pendown()
  22.     turtle.color('brown')
  23.     fenxingshu(100)
  24.     turtle.exitonclick()

  25. if __name__ == '__main__':
  26.     main()
复制代码
各位大佬你们好!


代码如图2  

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

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

小弟 先谢谢了
最佳答案
2020-3-30 01:46:11
  1. import turtle,random

  2. def fenxingshu(changdu):

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


  4.     if changdu > 5:
  5.         '''绘制'''
  6.         if changdu<= 20:
  7.             turtle.color('green')
  8.             turtle.pensize(random.randint(0,3))
  9.         else:
  10.             turtle.color('brown')
  11.             turtle.pensize(3)
  12.         turtle.forward(changdu)
  13.         turtle.right(20)
  14.         fenxingshu(changdu-15)

  15.         '''绘制左侧树枝'''

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


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

  23. def main() :
  24.     #主函数
  25.     turtle.screensize(800, 600, "black")
  26.     turtle.left(90)
  27.     turtle.penup()
  28.     turtle.backward(150)
  29.     turtle.pendown()
  30.     turtle.color('brown')
  31.     turtle.pensize(5)
  32.     fenxingshu(100)
  33.     turtle.exitonclick()

  34. if __name__ == '__main__':
  35.     main()
复制代码

这是现在效果

这是现在效果

这是代码

这是代码

这是想要的效果

这是想要的效果
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-29 23:01:36 | 显示全部楼层
考我们输入代码吗?

如我这样的小白,图片调试不了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-30 00:49:26 | 显示全部楼层
xiangjianshinan 发表于 2020-3-29 23:01
考我们输入代码吗?

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

其实,就是简单地函数调用!嘻嘻
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-30 01:46:11 | 显示全部楼层    本楼为最佳答案   
  1. import turtle,random

  2. def fenxingshu(changdu):

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


  4.     if changdu > 5:
  5.         '''绘制'''
  6.         if changdu<= 20:
  7.             turtle.color('green')
  8.             turtle.pensize(random.randint(0,3))
  9.         else:
  10.             turtle.color('brown')
  11.             turtle.pensize(3)
  12.         turtle.forward(changdu)
  13.         turtle.right(20)
  14.         fenxingshu(changdu-15)

  15.         '''绘制左侧树枝'''

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


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

  23. def main() :
  24.     #主函数
  25.     turtle.screensize(800, 600, "black")
  26.     turtle.left(90)
  27.     turtle.penup()
  28.     turtle.backward(150)
  29.     turtle.pendown()
  30.     turtle.color('brown')
  31.     turtle.pensize(5)
  32.     fenxingshu(100)
  33.     turtle.exitonclick()

  34. if __name__ == '__main__':
  35.     main()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-30 01:46:44 | 显示全部楼层
若是可行,请采纳!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-30 02:06:13 | 显示全部楼层
  1. import turtle,random

  2. def fenxingshu(changdu):

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


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

  19.         '''绘制左侧树枝'''

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


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

  27. def main() :
  28.     #主函数
  29.     turtle.screensize(800, 600, "black")
  30.     turtle.left(90)
  31.     turtle.penup()
  32.     turtle.backward(150)
  33.     turtle.pendown()
  34.     turtle.color('brown')
  35.     turtle.pensize(5)
  36.     fenxingshu(100)
  37.     turtle.exitonclick()

  38. if __name__ == '__main__':
  39.     main()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-18 10:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表