当前位置:   article > 正文

海龟绘图小案例(内含源码)_python海龟画图源代码

python海龟画图源代码

前言

在1966年,Seymour Papert和Wally Feurzig发明了一种专门给儿童学习编程的语言——LOGO语言,它的特色就是通过编程指挥一个小海龟(turtle)在屏幕上绘图。海龟绘图(Turtle Graphics)后来被移植到各种高级语言中,Python内置了turtle库,基本上100%复制了原始的Turtle Graphics的所有功能操作以及相关案例。

1.1. 画布(canvas)

画布就是turtle为我们展开用于绘图区域, 我们可以设置它的大小和初始位置

1.2 设置画布大小

turtle.screensize(canvwidth=None, canvheight=None, bg=None)
参数分别为画布的宽(单位像素), 高, 背景颜色

如:

  1. turtle.screensize(800, 600, "green")
  2. turtle.screensize() #返回默认大小(400, 300)

turtle.setup(width=0.5, height=0.75, startx=None, starty=None)

参数:
width, height: 输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例
(startx, starty): 这一坐标表示 矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心

如:

  1. turtle.setup(width=0.6, height=0.6)
  2. turtle.setup(width=800, height=800, startx=100, starty=100)

2. 画笔

2.1 画笔的状态

在画布上,默认有一个坐标原点为画布中心的坐标轴, 坐标原点上有一只面朝x轴正方向小乌龟. 这里我们描述小乌龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向), turtle绘图中, 就是使用位置方向描述小乌龟(画笔)的状态

2.2 画笔的使用

使用 turtle.Pen() 来创建画笔对象

  1. import turtle
  2. turtle.Pen()
  3. turtle.mainloop()#画面保持

2.3 绘图命令

操纵海龟绘图有着许多的命令,这些命令可以划分为3种:一种为运动命令,一种为画笔控制命令,还有一种是全局控制命令

(1)画笔运动命令:

615a21ad547d4c80b54557937758ce8c.png

4e23c72b0d834a3bb1d4905b59b4714d.png

3. 命令详解

3.1 turtle.circle(radius, extent=None, steps=None)
描述: 以给定半径画圆
参数:
radius(半径); 半径为正(负),表示圆心在画笔的左边(右边)画圆
extent(弧度) (optional);
steps (optional) (做半径为radius的圆的内切正多边形,多边形边数为steps)

举例:
circle(50) # 整圆;
circle(50,steps=3) # 三角形;
circle(120, 180) # 半圆

4. 绘图举例

4.1  党旗

6c40554a609641a7a919461d216d5aee.png

  1. import turtle
  2. turtle.fillcolor("red")
  3. turtle.pencolor("red")
  4. turtle.up()
  5. turtle.goto(-300, 300)
  6. turtle.down()
  7. turtle.begin_fill()
  8. for i in range(2):
  9. turtle.forward(600)
  10. turtle.right(90)
  11. turtle.forward(400)
  12. turtle.right(90)
  13. turtle.end_fill()
  14. turtle.fillcolor("yellow")
  15. turtle.pencolor("yellow")
  16. turtle.up()
  17. turtle.goto(10, 220)
  18. turtle.seth(225)
  19. turtle.down()
  20. turtle.begin_fill()
  21. turtle.fd(125)
  22. turtle.right(90)
  23. turtle.fd(50)
  24. turtle.right(90)
  25. turtle.fd(100)
  26. turtle.right(90)
  27. turtle.circle(25, 90)
  28. turtle.end_fill()
  29. turtle.up()
  30. turtle.goto(-40, 190)
  31. turtle.seth(-45)
  32. turtle.down()
  33. turtle.begin_fill()
  34. for i in range(2):
  35. turtle.forward(200)
  36. turtle.right(90)
  37. turtle.forward(30)
  38. turtle.right(90)
  39. turtle.end_fill()
  40. turtle.up()
  41. turtle.goto(-100, 100)
  42. turtle.seth(-50)
  43. turtle.down()
  44. turtle.begin_fill()
  45. turtle.circle(100, 180)
  46. turtle.fd(20)
  47. turtle.right(157)
  48. turtle.circle(-115, 190)
  49. turtle.left(90)
  50. turtle.fd(20)
  51. turtle.right(90)
  52. turtle.fd(20)
  53. turtle.right(90)
  54. turtle.fd(20)
  55. turtle.left(80)
  56. turtle.fd(30)
  57. turtle.end_fill()
  58. turtle.up()
  59. turtle.goto(-90, 50)
  60. turtle.down()
  61. turtle.begin_fill()
  62. turtle.circle(20)
  63. turtle.end_fill()
  64. turtle.hideturtle() # 隐藏小海龟
  65. # 维持面板
  66. turtle.done()

4.2 草莓熊

d8275531679644389daaa4f09015f696.png

  1. import turtle as t
  2. # 设置背景颜色,窗口位置以及大小
  3. t.colormode(255) # 颜色模式
  4. t.speed(0)
  5. t.screensize(850, 760, "white") # 画布大小背景颜色
  6. t.setup(width=850, height=760, startx=None, starty=None) # 绘图窗口的大小和起始坐标
  7. # t.bgpic("di_800.gif")
  8. t.title("逆境清醒草莓熊!") # 设置绘图窗口的标题
  9. t.resizemode('noresize') # 大小调整模式:auto,user,noresize
  10. t.tracer(1)
  11. scolor = ["#E6005C", "#00BFFF", "#538a30", "#F28500"] # 深色列表
  12. qcolor = ["#FF007F", "#87CEFA", "#7fbc2b", "#FFA500"] # 浅色列表
  13. blsize = 80 # blsize值,blsize,是大等腰直角三角形的斜边风车等比例缩放
  14. bs = 2 ** 0.5 / 2 * blsize # bs是直角边,2**0.5 表示数学中的“根号2”
  15. # zjsjxxb是小等腰直角三角形的斜边,zjb是直角边
  16. zjb = blsize / 2 # zjb是小等腰直角三角形的直角边
  17. zjsjxxb = 2 ** 0.5 * zjb # zjsjxxb是小等腰直角三角形的斜边
  18. length = 1.7 * blsize # 风车杆长
  19. width = 2 / 15 * blsize # 风车杆宽
  20. def fongche(): # 风车
  21. t.penup()
  22. t.goto(-205, -42)
  23. t.begin_fill()
  24. t.pensize(4)
  25. t.pencolor("#321320")
  26. t.fillcolor("#D2B48C")
  27. t.circle(15)
  28. t.end_fill()
  29. t.penup()
  30. t.goto(-220, 80)
  31. t.pendown()
  32. t.setheading(-90)
  33. t.pensize(width)
  34. t.pencolor("#5f4a1d")
  35. t.forward(length)
  36. t.pensize(2)
  37. t.backward(length)
  38. t.setheading(90)
  39. for i in range(4):
  40. # 小等腰直角三角形
  41. t.color(scolor[i]) # 遍历深色列表scolor
  42. t.begin_fill()
  43. t.forward(zjb)
  44. t.left(90)
  45. t.forward(zjb)
  46. t.left(135)
  47. t.forward(zjsjxxb)
  48. t.end_fill()
  49. # t.pencolor(scolor[i])
  50. # t.pensize(4)
  51. # 大等腰直角三角形
  52. t.color(qcolor[i]) # 遍历浅色列表qcolor
  53. t.begin_fill()
  54. t.backward(zjsjxxb)
  55. t.right(90)
  56. t.forward(bs)
  57. t.left(135)
  58. t.forward(blsize)
  59. t.end_fill()
  60. # t.pencolor(scolor[i])
  61. # t.pensize(4)
  62. # 旋转180度后,画下一片风车叶片
  63. t.right(180)
  64. t.penup()
  65. mling_circle_list = iter([ # 每段弧线(半径,弧角度数)
  66. (18, 360), (14, 360), (10, 360), (6, 360),
  67. (18, 360), (14, 360), (10, 360), (6, 360),
  68. ])
  69. def mling_draw_eyeball(zb1, zb2, zb3, zb4):
  70. for zb, color_ in zip([zb1, zb2, zb3, zb4], ['#ffffff', '#482d08', '#000000', '#ffffff']):
  71. t.penup()
  72. t.goto(*zb)
  73. t.pendown()
  74. t.begin_fill()
  75. t.setheading(0)
  76. t.color(color_)
  77. t.pencolor('#000000')
  78. t.pensize(2)
  79. t.circle(*next(mling_circle_list))
  80. t.end_fill()
  81. t.penup()
  82. p = t.home()
  83. t.pencolor("#321320")
  84. t.fillcolor("#cb3263")
  85. t.pensize(4)
  86. t.goto(120, 110)
  87. t.pendown()
  88. t.begin_fill()
  89. t.goto(200, 0)
  90. t.left(-40)
  91. t.circle(-110, 105)
  92. t.left(75)
  93. t.goto(170, -110)
  94. t.left(-80)
  95. t.circle(30, 40)
  96. t.left(60)
  97. t.circle(-80, 70)
  98. t.left(83)
  99. t.circle(-35, 95)
  100. t.goto(60, -270)
  101. t.left(-80)
  102. t.circle(-65, 70)
  103. t.left(63)
  104. t.circle(35, 30)
  105. t.left(130)
  106. t.circle(-65, 70)
  107. t.goto(-120, -270)
  108. t.left(-110)
  109. t.circle(-35, 80)
  110. t.left(83)
  111. t.circle(-80, 50)
  112. t.left(60)
  113. t.circle(-80, 60)
  114. t.left(60)
  115. t.circle(30, 30)
  116. t.left(20)
  117. t.circle(80, 80)
  118. t.left(-105)
  119. t.circle(-70, 150)
  120. t.left(50)
  121. t.circle(-170, 50)
  122. t.goto(120, 110)
  123. # Author:Adversity Awake
  124. t.end_fill()
  125. t.penup()
  126. p = t.home()
  127. t.pencolor("#321320")
  128. t.fillcolor("#ffffff")
  129. t.pensize(4)
  130. t.goto(90, 60)
  131. t.pendown()
  132. t.begin_fill()
  133. t.right(30)
  134. t.circle(-130, 360)
  135. t.end_fill()
  136. t.penup()
  137. p = t.home()
  138. t.pencolor("#321320")
  139. t.fillcolor("#f3d2ad")
  140. t.pensize(4)
  141. t.goto(-250, -55)
  142. t.seth(0)
  143. t.pendown()
  144. t.begin_fill()
  145. t.right(-55)
  146. t.circle(-45, 270)
  147. t.goto(-220, -75)
  148. t.goto(-250, -55)
  149. t.end_fill()
  150. fongche()
  151. t.penup()
  152. p = t.home()
  153. t.pencolor("#321320")
  154. t.fillcolor("#f3d2ad")
  155. t.pensize(4)
  156. t.goto(185, -90)
  157. t.pendown()
  158. t.begin_fill()
  159. t.right(140)
  160. t.circle(43, 95)
  161. t.goto(185, -90)
  162. t.end_fill()
  163. t.penup()
  164. t.seth(0)
  165. t.pencolor('#321320')
  166. t.fillcolor('#cb3263')
  167. t.pensize(4)
  168. t.begin_fill()
  169. t.goto(21, 0)
  170. t.pendown()
  171. t.circle(123, 134)
  172. t.left(-90)
  173. t.circle(40, 185)
  174. t.left(-60)
  175. t.circle(120, 60)
  176. t.left(-90)
  177. t.circle(50, 200)
  178. t.left(-90)
  179. t.circle(100, 100)
  180. t.left(-12)
  181. t.circle(100, 40)
  182. t.goto(21, 0)
  183. t.penup()
  184. # Author:Adversity Awake
  185. t.end_fill()
  186. t.penup()
  187. t.goto(0, 0)
  188. t.seth(0)
  189. t.pencolor('#321320')
  190. t.fillcolor('#ffffff')
  191. t.pensize(4)
  192. t.begin_fill()
  193. t.goto(-70, 210)
  194. t.left(140)
  195. t.pendown()
  196. t.circle(30, 200)
  197. t.goto(-70, 210)
  198. t.penup()
  199. t.end_fill()
  200. t.penup()
  201. t.goto(0, 0)
  202. t.seth(0)
  203. t.pencolor('#321320')
  204. t.fillcolor('#ffffff')
  205. t.pensize(4)
  206. t.begin_fill()
  207. t.goto(90, 220)
  208. t.left(45)
  209. t.pendown()
  210. t.circle(22, 200)
  211. t.goto(90, 220)
  212. t.penup()
  213. t.end_fill()
  214. t.penup()
  215. t.goto(0, 0)
  216. t.seth(0)
  217. t.pencolor('#321320')
  218. t.fillcolor('#ffffff')
  219. t.pensize(4)
  220. t.begin_fill()
  221. t.left(-98)
  222. t.left(90)
  223. t.goto(18, 10)
  224. t.pendown()
  225. t.circle(100, 134)
  226. t.left(10)
  227. t.circle(110, 30)
  228. t.left(10)
  229. t.circle(160, 40)
  230. t.circle(85, 40)
  231. t.left(2)
  232. t.circle(95, 40)
  233. t.left(5)
  234. t.circle(95, 60)
  235. t.goto(18, 10)
  236. t.penup()
  237. t.end_fill()
  238. t.penup()
  239. p = t.home()
  240. t.pencolor("#321320")
  241. t.fillcolor("#8f3a52")
  242. t.pensize(2)
  243. t.goto(25, 240)
  244. t.pendown()
  245. t.begin_fill()
  246. t.goto(60, 235)
  247. t.left(30)
  248. t.fd(8)
  249. t.left(90)
  250. t.fd(22)
  251. t.circle(90, 8)
  252. t.left(20)
  253. t.circle(90, 8)
  254. t.left(20)
  255. t.circle(90, 20)
  256. t.left(40)
  257. t.circle(50, 20)
  258. t.end_fill()
  259. t.penup()
  260. t.pensize(12)
  261. t.goto(-2, 250)
  262. t.pencolor("#4D1F00")
  263. t.fillcolor("#4D1F00")
  264. t.pendown()
  265. t.goto(60, 240)
  266. t.end_fill()
  267. t.penup()
  268. p = t.home()
  269. t.pencolor("#321320")
  270. t.fillcolor("#8f3a52")
  271. t.pensize(2)
  272. t.goto(-55, 193)
  273. t.pendown()
  274. t.begin_fill()
  275. t.left(65)
  276. t.circle(-90, 25)
  277. t.goto(-10, 230)
  278. t.left(30)
  279. t.fd(8)
  280. t.left(90)
  281. t.fd(18)
  282. t.circle(90, 8)
  283. t.left(20)
  284. t.circle(90, 10)
  285. t.left(40)
  286. t.circle(90, 30)
  287. t.left(30)
  288. t.circle(40, 20)
  289. t.penup()
  290. t.end_fill()
  291. t.pensize(12)
  292. t.goto(-63, 195)
  293. t.pencolor("#4D1F00")
  294. t.fillcolor("#4D1F00")
  295. t.pendown()
  296. t.left(100)
  297. t.circle(-85, 45)
  298. t.end_fill()
  299. mling_draw_eyeball((-20, 180), (-23, 185), (-25, 188), (-30, 200))
  300. mling_draw_eyeball((30, 193), (27, 200), (25, 203), (20, 213))
  301. t.penup()
  302. p = t.home()
  303. t.pencolor("#321320")
  304. t.fillcolor("#8f3a52")
  305. t.pensize(3)
  306. t.goto(25, 105)
  307. p = t.pos()
  308. t.pendown()
  309. t.begin_fill()
  310. t.circle(85, 65)
  311. t.left(16)
  312. t.circle(30, 55)
  313. t.left(20)
  314. t.circle(145, 58)
  315. t.left(8)
  316. t.circle(20, 55)
  317. t.left(8)
  318. t.circle(50, 65)
  319. t.left(-5)
  320. t.circle(310, 8)
  321. t.end_fill()
  322. t.penup()
  323. t.goto(0, 0)
  324. t.seth(0)
  325. t.pencolor('#321320')
  326. t.fillcolor('#a93e54')
  327. t.pensize(3)
  328. t.begin_fill()
  329. t.left(-20)
  330. t.goto(9, 66)
  331. t.pendown()
  332. t.circle(68, 40)
  333. t.left(10)
  334. t.circle(65, 40)
  335. t.left(160)
  336. t.circle(-75, 85)
  337. t.left(158)
  338. t.circle(48, 37)
  339. t.goto(9, 66)
  340. t.penup()
  341. t.end_fill()
  342. t.color('#321320')
  343. t.penup()
  344. t.goto(260, 60)
  345. t.pendown()
  346. t.write("愿\n你\n没\n有\n烦\n恼\n", align="center", font=("黑体", 20, "normal"))
  347. t.penup()
  348. t.goto(290, 183)
  349. t.pendown()
  350. t.write("逆\n境\n清\n醒\n", align="center", font=("黑体", 10, "normal"))
  351. t.hideturtle()
  352. t.done()

4.3哆啦A梦

b355e5fc3bde40ea9a735b3e695020e6.png
        "

  1. import turtle
  2. def flyTo(x, y): #开启无轨迹跳跃
  3. turtle.penup()
  4. turtle.goto(x, y)
  5. turtle.pendown()
  6. def drawEye(): #画眼睛
  7. turtle.tracer(False)
  8. a = 2.5
  9. for i in range(120):
  10. if 0 <= i < 30 or 60 <= i < 90:
  11. a -= 0.05
  12. else:
  13. a += 0.05
  14. turtle.left(3)
  15. turtle.fd(a)
  16. turtle.tracer(True)
  17. def beard(): #画胡子
  18. # 左边第一根胡子
  19. flyTo(-37, 135)
  20. turtle.seth(165)
  21. turtle.fd(60)
  22. # 左边第二根胡子
  23. flyTo(-37, 125)
  24. turtle.seth(180)
  25. turtle.fd(60)
  26. # 左边第三根胡子
  27. flyTo(-37, 115)
  28. turtle.seth(193)
  29. turtle.fd(60)
  30. # 右边第一根胡子
  31. flyTo(37, 135)
  32. turtle.seth(15)
  33. turtle.fd(60)
  34. # 右边第二根胡子
  35. flyTo(37, 125)
  36. turtle.seth(0)
  37. turtle.fd(60)
  38. # 右边第三根胡子
  39. flyTo(37, 115)
  40. turtle.seth(-13)
  41. turtle.fd(60)
  42. def drawRedScarf():
  43. turtle.fillcolor("red") # 填充颜色
  44. turtle.begin_fill()
  45. turtle.seth(0) # 调整转向向右
  46. turtle.fd(200)
  47. turtle.circle(-5, 90)
  48. turtle.fd(10)
  49. turtle.circle(-5, 90)
  50. turtle.fd(207)
  51. turtle.circle(-5, 90)
  52. turtle.fd(10)
  53. turtle.circle(-5, 90)
  54. turtle.end_fill()
  55. def drawMouse():
  56. flyTo(5, 148)
  57. turtle.seth(270)
  58. turtle.fd(100)
  59. turtle.seth(0)
  60. turtle.circle(120, 50)
  61. turtle.seth(230)
  62. turtle.circle(-120, 100)
  63. def drawRedNose():
  64. flyTo(-10, 158)
  65. turtle.fillcolor("red") # 填充颜色
  66. turtle.begin_fill()
  67. turtle.circle(20)
  68. turtle.end_fill()
  69. def drawBlackdrawEye():
  70. turtle.seth(0)
  71. flyTo(-20, 195)
  72. turtle.fillcolor("#000000") # 填充颜色
  73. turtle.begin_fill()
  74. turtle.circle(13)
  75. turtle.end_fill()
  76. turtle.pensize(6)
  77. flyTo(20, 205)
  78. turtle.seth(75)
  79. turtle.circle(-10, 150)
  80. turtle.pensize(3)
  81. flyTo(-17, 200)
  82. turtle.seth(0)
  83. turtle.fillcolor("#ffffff")
  84. turtle.begin_fill()
  85. turtle.circle(5)
  86. turtle.end_fill()
  87. flyTo(0, 0)
  88. def drawFace():
  89. turtle.forward(183) # 前行183个单位
  90. turtle.fillcolor("white") # 填充颜色为白色
  91. turtle.begin_fill() # 开始填充
  92. turtle.left(45) # 左转45度
  93. turtle.circle(120, 100) # 右边那半边脸
  94. turtle.seth(90) # 调整转向向上
  95. drawEye() # 画右眼睛
  96. turtle.seth(180) # 调整转向向左
  97. turtle.penup() # 抬笔
  98. turtle.fd(60) # 前行60
  99. turtle.pendown() # 落笔
  100. turtle.seth(90) # 调整转向向上
  101. drawEye() # 画左眼睛
  102. turtle.penup() # 抬笔
  103. turtle.seth(180) # 调整转向向左
  104. turtle.fd(64) # 前进64
  105. turtle.pendown() # 落笔
  106. turtle.seth(215) # 修改朝向
  107. turtle.circle(120, 100) # 左边那半边脸
  108. turtle.end_fill() #
  109. def drawHead():
  110. turtle.penup() # 抬笔
  111. turtle.circle(150, 40) # 画圆, 半径150,圆周角40
  112. turtle.pendown() # 落笔
  113. turtle.fillcolor("#00a0de") # 填充色
  114. turtle.begin_fill() # 开始填充
  115. turtle.circle(150, 280) # 画圆,半径150, 圆周角280
  116. turtle.end_fill()
  117. def drawAll():
  118. drawHead()
  119. drawRedScarf()
  120. drawFace()
  121. drawRedNose()
  122. drawMouse()
  123. beard()
  124. flyTo(0, 0)
  125. turtle.seth(0)
  126. turtle.penup()
  127. turtle.circle(150, 50)
  128. turtle.pendown()
  129. turtle.seth(30)
  130. turtle.fd(40)
  131. turtle.seth(70)
  132. turtle.circle(-30, 270)
  133. turtle.fillcolor("#00a0de")
  134. turtle.begin_fill()
  135. turtle.seth(230)
  136. turtle.fd(80)
  137. turtle.seth(90)
  138. turtle.circle(1000, 1)
  139. turtle.seth(-89)
  140. turtle.circle(-1000, 10)
  141. turtle.seth(180)
  142. turtle.fd(70)
  143. turtle.seth(90)
  144. turtle.circle(30, 180)
  145. turtle.seth(180)
  146. turtle.fd(70)
  147. turtle.seth(100)
  148. turtle.circle(-1000, 9)
  149. turtle.seth(-86)
  150. turtle.circle(1000, 2)
  151. turtle.seth(230)
  152. turtle.fd(40)
  153. turtle.circle(-30, 230)
  154. turtle.seth(45)
  155. turtle.fd(81)
  156. turtle.seth(0)
  157. turtle.fd(203)
  158. turtle.circle(5, 90)
  159. turtle.fd(10)
  160. turtle.circle(5, 90)
  161. turtle.fd(7)
  162. turtle.seth(40)
  163. turtle.circle(150, 10)
  164. turtle.seth(30)
  165. turtle.fd(40)
  166. turtle.end_fill()
  167. # 左手
  168. turtle.seth(70)
  169. turtle.fillcolor("#FFFFFF")
  170. turtle.begin_fill()
  171. turtle.circle(-30)
  172. turtle.end_fill()
  173. # 脚
  174. flyTo(103.74, -182.59)
  175. turtle.seth(0)
  176. turtle.fillcolor("#FFFFFF")
  177. turtle.begin_fill()
  178. turtle.fd(15)
  179. turtle.circle(-15, 180)
  180. turtle.fd(90)
  181. turtle.circle(-15, 180)
  182. turtle.fd(10)
  183. turtle.end_fill()
  184. flyTo(-96.26, -182.59)
  185. turtle.seth(180)
  186. turtle.fillcolor("#FFFFFF")
  187. turtle.begin_fill()
  188. turtle.fd(15)
  189. turtle.circle(15, 180)
  190. turtle.fd(90)
  191. turtle.circle(15, 180)
  192. turtle.fd(10)
  193. turtle.end_fill()
  194. # 右手
  195. flyTo(-133.97, -91.81)
  196. turtle.seth(50)
  197. turtle.fillcolor("#FFFFFF")
  198. turtle.begin_fill()
  199. turtle.circle(30)
  200. turtle.end_fill()
  201. # 口袋
  202. flyTo(-103.42, 15.09)
  203. turtle.seth(0)
  204. turtle.fd(38)
  205. turtle.seth(230)
  206. turtle.begin_fill()
  207. turtle.circle(90, 260)
  208. turtle.end_fill()
  209. flyTo(5, -40)
  210. turtle.seth(0)
  211. turtle.fd(70)
  212. turtle.seth(-90)
  213. turtle.circle(-70, 180)
  214. turtle.seth(0)
  215. turtle.fd(70)
  216. # 铃铛
  217. flyTo(-103.42, 15.09)
  218. turtle.fd(90)
  219. turtle.seth(70)
  220. turtle.fillcolor("#ffd200")
  221. turtle.begin_fill()
  222. turtle.circle(-20)
  223. turtle.end_fill()
  224. turtle.seth(170)
  225. turtle.fillcolor("#ffd200")
  226. turtle.begin_fill()
  227. turtle.circle(-2, 180)
  228. turtle.seth(10)
  229. turtle.circle(-100, 22)
  230. turtle.circle(-2, 180)
  231. turtle.seth(180 - 10)
  232. turtle.circle(100, 22)
  233. turtle.end_fill()
  234. flyTo(-13.42, 15.09)
  235. turtle.seth(250)
  236. turtle.circle(20, 110)
  237. turtle.seth(90)
  238. turtle.fd(15)
  239. turtle.dot(10)
  240. flyTo(0, -150)
  241. drawBlackdrawEye()
  242. def main():
  243. turtle.screensize(800, 6000, "#F0F0F0")
  244. turtle.pensize(3)
  245. turtle.speed(9)
  246. drawAll()
  247. turtle.penup() #抬笔
  248. turtle.goto(100, -300)
  249. #turtle.color("violet") #粉红色有点那个
  250. turtle.write('by peak', font=("Bradley Hand ITC", 30, "bold"))
  251. if __name__ == "__main__":
  252. main()
  253. turtle.mainloop()

4.4魔鬼螺旋

932b4d10bf9a4254befdf7ed44e1e27b.png

  1. import turtle as t
  2. from turtle import *
  3. angle = 60 #通过改变角度,绘制出各种多边形
  4. t.setup(1280,720)
  5. t.bgcolor('black')
  6. t.pensize(2)
  7. randomColor = ['red','blue','green','purple','gold','pink']
  8. t.speed(0)
  9. for i in range(600):
  10. t.color(randomColor[i%6])
  11. t.fd(i)
  12. t.rt(angle+1)
  13. up()
  14. color("#0fe6ca")
  15. goto(0,0)
  16. down()
  17. t.done()

4.5 紫色小蛇

c614825f9b224ddf9c02fe22ba7cdbde.png

  1. from turtle import *
  2. setup(900, 350, 200, 200)
  3. up()
  4. fd(-350)
  5. down()
  6. pensize(25)
  7. color("purple")
  8. # 控制画笔起始方向
  9. seth(-40)
  10. # 绘制蛇身
  11. for i in range(4):
  12. circle(60, 80)
  13. circle(-60, 80)
  14. circle(60, 80 / 2)
  15. # 绘制蛇头
  16. fd(60)
  17. circle(32, 180)
  18. fd(60 * 2 / 3)
  19. done()

总结

以上就是本文讲述海龟绘图的内容,并且尝试使用海龟绘图模块(类)绘制一些基础图形,希望帮助大家更好的学习知识。

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

闽ICP备14008679号