用python可以画的可爱的图形_知道这三点,就能用Python画出80%的图形

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F11%2F03%2F2f4efe9cce94463d94cfe04887b23de7.png&thumbnail=650x2147483647&quality=80&type=jpg

此内容需要了解turtle的坐标系,请参阅之前文章。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F11%2F03%2F05059c51909f438d99693c7799f6a998.png&thumbnail=650x2147483647&quality=80&type=jpg

题目如上,我们用Python和turtle库来完成此任务。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F11%2F03%2F93d4ff4a847440fead2900c875641786.png&thumbnail=650x2147483647&quality=80&type=jpg

一个大正方形中,有大(2)、中(1)、小(2)共5个等腰直角三角形,正方形一个和平行四边形一个。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F11%2F03%2F13d68f13dfc24fbea7bc67272b0a04bc.png&thumbnail=650x2147483647&quality=80&type=jpg

假设大正方形的边长为1,推算出其他边的长度(见上图);这里主要用到了等腰直角三角形边斜的关系,推出平行四边形的角度。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F11%2F03%2Ff84f151db67e4681beb0c9160a35dcb9.png&thumbnail=650x2147483647&quality=80&type=jpg

因为会重复使用,所以对三个形状的画图填充颜色写成函数。以画图的起始坐标,颜色和边长作为参数。正方形中,四个角都是90度。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F11%2F03%2F0384e65c865a4c799c8ac5d4f2048e1f.png&thumbnail=650x2147483647&quality=80&type=jpg

三角形的起始角度是0度,所以首次需要左转45度,先画右边的腰,转90度,再画左边的腰,转135度,画斜边;这里为了统一,全部是使用向左转向;斜边是根据直角边推算出来的。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F11%2F03%2Fc5dafeba3bd844c5b76a7654291530c4.png&thumbnail=650x2147483647&quality=80&type=jpg

平行四边形只有一个,是从大正方形的右上角开始画的。依次画右底边(参数6),下斜边(参数7),左底边和上斜边;注意角度是向右转(负数)。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F11%2F03%2F634b02bcdb50474d91891d508a1a8ae1.png&thumbnail=650x2147483647&quality=80&type=jpg

定义好函数后,只要确定起始点,颜色和边长即可。起始点的坐标,请根据取的大正方形的边长,和坐标轴来确定;颜色数值是截屏获得的;每个图形之间,画笔的方向请调整好。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F11%2F03%2F880e69a0723843c9b7fd7e757554e27c.png&thumbnail=650x2147483647&quality=80&type=jpg

刚开始可以把速度调慢一点(行8),好明晰画笔的方向。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2019%2F11%2F03%2Ff8e484e24e6a471ba80c24f8e26dbbca.png&thumbnail=650x2147483647&quality=80&type=jpg

完成图如上,Python完整代码请自行组合,最后加上done即可。

结尾

知道起始点,角度和长度,就能完成绝大多数的图形(未涉及带弧线的)。

在填充颜色时,不需要画最后一条线,turtle会自动闭合剩下的端点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值