[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python**蓝桥杯真题解析100讲》,**这是解读系列的第11讲。
**绘制折扇,**本题是2019年~2020年举办的第11届蓝桥杯青少组Python编程选拔赛真题(具体日期不详),题目要求以坐标点(0,0)为起始点绘制一把扇子,扇面和扇把都是三分之一的圆,扇面的半径为150,扇把的半径为30。
先来看看题目的要求吧。
一.题目说明
编程实现:
以坐标点(0,0)为起始点绘制一把扇子。
扇面和扇把都是三分之一的圆,扇面的半径为150,扇把的半径为30,如图1所示:
绘制要求:
1). 背景为白色,面笔为黑色,线宽 1,扇子张角为 120度;
2). 坐标点(0,0)为构成扇子的所有线段的相交点;
3). 绘图过程中隐藏画笔,并能清楚地看到扇子绘制过程。
评判标准:
-
30分:能够绘制出张角为120度的扇面或扇把,不论是否满足其它要求;
-
50分:扇子张角、大小、线宽、背景、位置和方向均完全符合题目要求。
二.思路分析
这是一道海龟画图题,考察的知识点是Turtle的熟练运用。
这里的折扇,由扇面和扇把两部分组成,通常的做法就是分别绘制扇面和扇把,这当然是没有问题的。
但实际上,还有更简单的办法,不知道你发现了没,就是同时绘制扇面和扇把。
如果将实心圆看成是由360条直线构成的图形,那么这里的折扇则是由120条直线构成。
所不同的是旋转点不一样,对于圆而言,旋转点在直线的中间位置,对于折扇而言,旋转点在靠近扇把的一端。
所以,我们只需要控制好旋转点就可以一次性画出扇面和扇把了。
思路有了,接下来,我们就进入具体的编程实现环节。
三.编程实现
根据上面的思路分析,我们编写代码如下:
代码不难理解,简单说明3点:
1). 小海龟的方向,默认为0,面向右方,其方向如图所示,所以需要将起始方向设置为120度;
2). 需要按照题目要求计算好每一步前进或后退的数值,同时要确保在旋转点(0,0)处右转;
3). 由于每次右转1度,所以一共循环了120次,也可以做相应的修改,比如每次右转2度,这样就需要循环60次。
运行程序,效果如图:
至此,整个程序就全部完成了,一把简单的折扇就画好了。
四.总结与思考
本题的分数为50分,代码在10行左右,涉及到的知识点包括:
-
循环语句,主要是for...in循环;
-
海龟画图的熟练运用;
-
Turtle坐标系的方向;
题目难度一般,关键在于如何使用最简单的方法快速编写代码。这就要求考生能够找出图形的特点和规律,使用最少的代码绘制好折扇。
超平老师给你留一道思考题,本题我们沿着顺时针方向画了一把黑色的折扇,能否逆时针方向将折扇擦掉呢,你知道怎么实现吗,赶紧动手试试吧。
你还有什么好的想法和创意吗,也非常欢迎和超平老师分享探讨。
如果你觉得文章对你有帮助,别忘了点赞和转发,予人玫瑰,手有余香😄
需要源码的,可以私信本人。