当前位置:   article > 正文

python:turtle画图 塔_用python画建筑物塔

用python画建筑物塔

截图:

网址:

https://python123.io/index/turtles/5f277f1977034976bcae26f1

技术要点:

1.注意turtle自身的坐标系、坐标轴朝向。

2.每一层要确定一个海龟起点,我用的是一层图案的左下角位置,如下图所示。根据这个起始点,来计算每层的数据变化、设定画图距离。

红色位置就是每层图案的起点。

3. 矩形、梯形、三角形,都可以做成函数。如果梯形可以任意指定高度参数,需要再加三角函数的计算。为了方便,我的梯形都用高度15、底角tan为15比30,这样上底的长度比下底少60. 梯形的模块,参数有多种设置方法,可以是长度、角度、斜边长度。

代码:

  1. #20200803 钢七连
  2. # python画图
  3. import turtle
  4. import math
  5. mapx=-240
  6. mapy=-240
  7. level_h=60
  8. def top_tri(size):
  9. turtle.begin_fill()
  10. turtle.fillcolor('#84c1ff')
  11. turtle.forward(15)
  12. for i in range(3):
  13. turtle.forward(size)
  14. turtle.left(120)
  15. turtle.end_fill()
  16. def rect(w,h):
  17. turtle.begin_fill()
  18. turtle.fillcolor('#0f0')
  19. for x in range(4):
  20. if x % 2 == 1:
  21. n = h
  22. else:
  23. n = w
  24. turtle.forward(n)
  25. turtle.left(90)
  26. # end for
  27. turtle.end_fill()
  28. # 梯形
  29. def trapezoid(w1, w2 ):
  30. angle_c=27
  31. turtle.begin_fill()
  32. turtle.fillcolor('#00f')
  33. turtle.forward(w1)
  34. turtle.left(180-angle_c )
  35. turtle.forward(34)
  36. turtle.left(angle_c )
  37. turtle.forward(w2)
  38. turtle.left(angle_c )
  39. turtle.forward(34)
  40. turtle.end_fill()
  41. def draw_level(size,level):
  42. turtle.penup()
  43. turtle.goto( (480- size)/2+ mapx ,mapy+ level* level_h)
  44. turtle.setheading(0)
  45. # 移动到矩形左下角
  46. turtle.penup()
  47. turtle.forward(15)
  48. #画一层
  49. turtle.pendown()
  50. rect(size-30, level_h-15)
  51. #先抬笔,再移动到房檐左下角
  52. turtle.penup()
  53. turtle.goto( (480- size)/2+ mapx ,mapy+ level* level_h+45)
  54. trapezoid(size, size-60 )
  55. def main():
  56. draw_w=260
  57. turtle.speed(5)
  58. turtle.showturtle()
  59. # 画笔隐形
  60. # 画笔有效
  61. turtle.pendown()
  62. turtle.pensize(2)
  63. turtle.color('brown')
  64. for i in range(7):
  65. draw_level( draw_w ,i)
  66. draw_w-=30
  67. #塔尖
  68. turtle.goto( (480- 260+ 7*30 )/2+ mapx ,mapy+ 7* level_h)
  69. turtle.setheading(0)
  70. top_tri(20)
  71. turtle.hideturtle()
  72. # unit test
  73. #rect(90, 45)
  74. #trapezoid(200, 140 )
  75. main()

一个python的简单例子。学习的通病,学生只是会了这个答案,缺应用和变化。

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

闽ICP备14008679号