此内容需要了解turtle的坐标系,请参阅之前文章。
题目如上,我们用Python和turtle库来完成此任务。
一个大正方形中,有大(2)、中(1)、小(2)共5个等腰直角三角形,正方形一个和平行四边形一个。
假设大正方形的边长为1,推算出其他边的长度(见上图);这里主要用到了等腰直角三角形边斜的关系,推出平行四边形的角度。
因为会重复使用,所以对三个形状的画图填充颜色写成函数。以画图的起始坐标,颜色和边长作为参数。正方形中,四个角都是90度。
三角形的起始角度是0度,所以首次需要左转45度,先画右边的腰,转90度,再画左边的腰,转135度,画斜边;这里为了统一,全部是使用向左转向;斜边是根据直角边推算出来的。
平行四边形只有一个,是从大正方形的右上角开始画的。依次画右底边(参数6),下斜边(参数7),左底边和上斜边;注意角度是向右转(负数)。
定义好函数后,只要确定起始点,颜色和边长即可。起始点的坐标,请根据取的大正方形的边长,和坐标轴来确定;颜色数值是截屏获得的;每个图形之间,画笔的方向请调整好。
刚开始可以把速度调慢一点(行8),好明晰画笔的方向。
完成图如上,Python完整代码请自行组合,最后加上done即可。
结尾
知道起始点,角度和长度,就能完成绝大多数的图形(未涉及带弧线的)。
在填充颜色时,不需要画最后一条线,turtle会自动闭合剩下的端点。