当前位置: 首页 > article >正文

绘制折扇-第11届蓝桥杯选拔赛Python真题精选

[导读]:超平老师的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坐标系的方向;

题目难度一般,关键在于如何使用最简单的方法快速编写代码。这就要求考生能够找出图形的特点和规律,使用最少的代码绘制好折扇。

超平老师给你留一道思考题,本题我们沿着顺时针方向画了一把黑色的折扇,能否逆时针方向将折扇擦掉呢,你知道怎么实现吗,赶紧动手试试吧。

你还有什么好的想法和创意吗,也非常欢迎和超平老师分享探讨。

如果你觉得文章对你有帮助,别忘了点赞和转发,予人玫瑰,手有余香😄

需要源码的,可以私信本人。


http://www.kler.cn/a/159905.html

相关文章:

  • Python 连接 Redis 进行增删改查(CRUD)操作
  • 丹摩征文活动|丹摩智算平台使用指南
  • 如何在算家云搭建Peach-9B-8k-Roleplay(文本生成)
  • 【ChatGPT】 如何让ChatGPT分析数据并得出结论
  • L10.【LeetCode笔记】回文链表
  • [CKS] 关闭API凭据自动挂载
  • SAP CA01/CA02 创建及更新工艺路线BAPI
  • 大话数据结构-查找-二叉排序树
  • Vue获取Promise then的返回值无效为空
  • 【ML】LSTM应用——预测股票(基于 tensorflow2)
  • [SQL]销售管理数据库的查询操作
  • 代码随想Day24 | 回溯法模板、77. 组合
  • 显示本周日历,左右滑动,日历翻页
  • UDP多人群聊
  • 区块链密码学:基础知识、应用与未来发展
  • c++ atmoic acquire/release
  • Python实现FA萤火虫优化算法优化随机森林分类模型(RandomForestClassifier算法)项目实战
  • Python脚本模拟真实设备刷视频播放量、浏览量
  • buuctf 加固题 babypython WriteUp
  • PyTorch分布式overview
  • 如何把kubernetes pod中的文件拷贝到宿主机上或者把宿主机上文件拷贝到kubernetes pod中
  • python将时间戳转换为时间
  • 用js自定义一个(v-model)vModel双向绑定函数
  • C语言给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)
  • Spark_spark hints 详细介绍
  • HTTPS安全防窃听、防冒充、防篡改三大机制原理