[Python] python实现樱花

615 0
Honkers 2025-3-5 20:19:25 | 显示全部楼层 |阅读模式

python实现樱花

代码如下:

  1. from turtle import *
  2. from random import *
  3. from math import *
  4. def tree(n, l):
  5. pd () # 下笔
  6. # 阴影效果
  7. t = cos ( radians ( heading () + 45 ) ) / 8 + 0.25
  8. pencolor ( t, t, t )
  9. pensize ( n / 3 )
  10. forward ( l ) # 画树枝
  11. if n > 0:
  12. b = random () * 15 + 10 # 右分支偏转角度
  13. c = random () * 15 + 10 # 左分支偏转角度
  14. d = l * (random () * 0.25 + 0.7) # 下一个分支的长度
  15. # 右转一定角度,画右分支
  16. right ( b )
  17. tree ( n - 1, d )
  18. # 左转一定角度,画左分支
  19. left ( b + c )
  20. tree ( n - 1, d )
  21. # 转回来
  22. right ( c )
  23. else:
  24. # 画叶子
  25. right ( 90 )
  26. n = cos ( radians ( heading () - 45 ) ) / 4 + 0.5
  27. ran = random ()
  28. # 这里相比于原来随机添加了填充的圆圈,让樱花叶子看起来更多一点
  29. if (ran > 0.7):
  30. begin_fill ()
  31. circle ( 3 )
  32. fillcolor ( 'pink' )
  33. # 把原来随机生成的叶子换成了统一的粉色
  34. pencolor ( "pink" )
  35. circle ( 3 )
  36. if (ran > 0.7):
  37. end_fill ()
  38. left ( 90 )
  39. # 添加0.3倍的飘落叶子
  40. if (random () > 0.7):
  41. pu ()
  42. # 飘落
  43. t = heading ()
  44. an = -40 + random () * 40
  45. setheading ( an )
  46. dis = int ( 800 * random () * 0.5 + 400 * random () * 0.3 + 200 * random () * 0.2 )
  47. forward ( dis )
  48. setheading ( t )
  49. # 画叶子
  50. pd ()
  51. right ( 90 )
  52. n = cos ( radians ( heading () - 45 ) ) / 4 + 0.5
  53. pencolor ( n * 0.5 + 0.5, 0.4 + n * 0.4, 0.4 + n * 0.4 )
  54. circle ( 2 )
  55. left ( 90 )
  56. pu ()
  57. # 返回
  58. t = heading ()
  59. setheading ( an )
  60. backward ( dis )
  61. setheading ( t )
  62. pu ()
  63. backward ( l ) # 退回
  64. bgcolor ( 0.956, 0.9255, 0.9882 ) # 设置背景色(把灰色换成淡紫色)
  65. ht () # 隐藏turtle
  66. speed ( 0 ) # 速度 1-10渐进,0 最快
  67. tracer ( 0, 0 )
  68. pu () # 抬笔
  69. backward ( 50 )
  70. left ( 90 ) # 左转90度
  71. pu () # 抬笔
  72. backward ( 300 ) # 后退300
  73. tree ( 12, 100 ) # 递归7层
  74. done ()
复制代码

效果如下:

本帖子中包含更多资源

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

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

本版积分规则

Honkers

荣誉红客

关注
  • 4008
    主题
  • 36
    粉丝
  • 0
    关注
这家伙很懒,什么都没留下!

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行