如何使用turtle库向下绘制并实现类三角形形状?
解决Turtle库向下绘制类三角形的问题
问题原因
你用turtle.backward(30)没实现向下绘制,是因为Turtle的forward/backward移动是基于当前朝向的:默认初始朝向是右侧(0度),backward(30)会朝左侧移动,而非向下。
修复方案
要实现向下绘制,有两种常用方式:调整Turtle朝向,或直接通过坐标定位。以下是对应修改后的代码,能实现你预期的类三角形效果:
方式1:调整朝向绘制
import turtle def get_mouse_click_coor(x, y): print(x, y) turtle.onscreenclick(get_mouse_click_coor) turtle.penup() turtle.goto(-120, 15) turtle.pendown() # 绘制向上的竖线 turtle.goto(-120, 25) # 设置朝向为正下方(Turtle中270度对应向下) turtle.setheading(270) # 向下移动30像素 turtle.forward(30) # 右转30度,绘制斜边 turtle.right(30) turtle.forward(34.64) # 30 / cos(30°) ≈ 34.64,保证回到起点 turtle.goto(-120, 25) turtle.mainloop()
方式2:直接坐标定位(无需关注朝向)
import turtle import math def get_mouse_click_coor(x, y): print(x, y) turtle.onscreenclick(get_mouse_click_coor) turtle.penup() turtle.goto(-120, 15) turtle.pendown() turtle.goto(-120, 25) # 向下绘制到(-120, -5) turtle.goto(-120, 25 - 30) # 绘制30度方向的斜边 turtle.goto(-120 + 30 * math.tan(math.radians(30)), 25 - 30) # 回到顶点完成三角形 turtle.goto(-120, 25) turtle.mainloop()
说明
- 两种方式都能实现你想要的向下类三角形效果,方式2更直观,适合精准控制坐标;方式1更贴合Turtle的面向方向绘制逻辑。
- 若需要调整三角形大小或角度,修改对应数值即可。
内容的提问来源于stack exchange,提问作者Deepjot Grewal
相关产品推荐
相关产品推荐

