当前位置:   article > 正文

《像计算机科学家一样思考Python》练习4-2 用turtle绘制花朵图案_turtle 像计算机科学家一样思考 python 太阳花

turtle 像计算机科学家一样思考 python 太阳花

绘制结果如下图所示:

主要代码如下:

  1. import turtle
  2. import math
  3. bob = turtle.Turtle()
  4. bob.delay = 0.001
  5. def arc(t, r, angle): # 角度制
  6. """Draws an arc with the given radius and angle.
  7. t: Turtle
  8. r: radius
  9. angle: angle subtended by the arc, in degrees
  10. """
  11. arc_length = 2 * math.pi * r * abs(angle) / 360
  12. n = int(arc_length / 4) + 3
  13. step_length = arc_length / n
  14. step_angle = float(angle) / n
  15. # making a slight left turn before starting reduces
  16. # the error caused by the linear approximation of the arc
  17. t.lt(step_angle/2)
  18. polyline(t, n, step_length, step_angle)
  19. t.rt(step_angle/2)
  20. def petal(t, r, angle): # 绘制花瓣
  21. for i in range(2):
  22. arc(t, r, angle) # 画花瓣的第一笔
  23. t.lt(180-angle) # 向左转180-angle度,然后画第二笔
  24. def flower(t, n, r, angle):
  25. for i in range(n):
  26. petal(t, r, angle)
  27. t.lt(360/n)
  28. def move(t, length):
  29. t.pu() # pen up:抬笔
  30. t.fd(length)
  31. t.pd() # pen down:落笔
  32. move(bob, -100)
  33. flower(bob, 7, 60.0, 40.0)
  34. move(bob, 100)
  35. flower(bob, 7, 60.0, 60.0)
  36. move(bob, 200)
  37. flower(bob, 7, 60.0, 80.0)
  38. bob.hideturtle()
  39. turtle.mainloop()

 

疑问:

 

如何选择度数?每个度数的结果不一样,例如同为7个花瓣,下图为度数分别为40, 60, 80的生成结果

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/167213
推荐阅读
相关标签
  

闽ICP备14008679号