题目

用 Python Turtle 绘制下面的图形。

题目说明

这道题要画一个正方形,并加上一条从左上角到右下角的对角线。正方形边长是 100 像素,边框可以按普通正方形来画,对角线可以利用 home() 从右下角回到起点画出来。

最终效果

Python 海龟绘图 100 题,第 16 题

Python 海龟绘图 100 题,第 16 题

知识点

  • t.fd(100):画出正方形的一条边。
  • t.rt(90):每画完一条边后右转 90 度。
  • t.home():从当前点回到原点,用来画对角线。
  • 重复前进和转向可以画边框,再用回原点命令补内部线。

绘图思路

可以先画出正方形的上边和右边,到达右下角后调用 home(),直接画出对角线并回到左上角。随后再从左上角向下画左边,向右画底边。这样不用计算对角线长度,也能得到题图中的效果。

完整代码

Python
# 不使用循环。
import turtle as t

t.fd(100)
t.rt(90)
t.fd(100)
t.home()
t.rt(90)
t.fd(100)
t.lt(90)
t.fd(100)

# 使用循环。

for i in range(6):
    t.fd(100)
    t.rt(90)
t.home()

关键步骤讲解

先到达右下角

开头的 t.fd(100)t.rt(90)t.fd(100) 会画出上边和右边,海龟停在右下角。

用 home() 画对角线

从右下角调用 t.home(),海龟会回到原点。画笔默认落下,所以返回路径就是正方形的对角线。

补出左边和底边

回到原点后,海龟面向右方。先右转 90 度向下画左边,再左转 90 度向右画底边,正方形边框就完整了。

循环写法的思路

循环写法先重复“前进 100,右转 90 度”。前 4 次会画完正方形边框,第 5 次和第 6 次让海龟重新走到右下角,最后 home() 画出对角线。

常见错误

  • 在右下角前就调用 home():对角线位置会不对。
  • 忘记补左边和底边:图形只有两条边和一条对角线。
  • 循环次数写成 4:只能画出正方形边框,不能走到右下角画对角线。
  • home() 前抬笔:对角线不会被画出来。

练习

把边长 100 改成 80140,观察正方形和对角线如何一起变化。也可以试着画另一条对角线,从右上角连到左下角。