最新消息:

Scratch:海龟绘图(八)——接口设计

Scratch 少儿编程 2279浏览 0评论

友情提示:视频教程观看时请手动设置清晰度。

Scratch 3.0已于今年1月正式发布。较Scratch 2.0版本而言,3.0版最大的改进就在于“内核”的改变——由基于Flash改为基于HTML5,从而适应了当今互联网发展的“大势”。

由于是新鲜事物,必然还存在些许不完善的地方。但本着“积极拥抱新技术”的态度,也希望您也能一起“与时俱进”,本公众号从这次课程开始,全面升级至Scratch 3.0平台,特此声明!

 

在这次课前导部分的分析中,我们已经认识到了上节课中我们代码的“问题所在”,现在,我们就来解决这个问题。

 

我们再来看看那个我们“引以为傲”的函数(如下图),其最大的优点就是“非常智能”——只要告诉它画几条边,它就能毫不犹豫的画出大小合适的正多边形。

Scratch:海龟绘图(八)——接口设计

 

然而,说到这个函数的缺点嘛,那就是“太智能”——以至于我们只能决定正多边形的“边数”,而对其他的细节“无能为力”,比如说“边长”。我们无法通过设置正多边形的边长来决定画“多大的”正多边形,这样的函数用起来固然“省事”,但其“局限性”也是非常明显的。

 

为了使用户获得该函数更多的“控制权”,我们将函数稍加改变,在“函数定义”时增加一个参数“length”(边长)并把绘制每条边的长度由“程序自动计算”改为我们指定的边长“length”,如下图:

 

Scratch:海龟绘图(八)——接口设计

这个函数可以保证我们画出“指定边长的正多边形”。那有人说“如果用户把边长设置的太长,海龟就会画到舞台外面去!”确实会存在这个风险,但这不是程序的错,我们把这个责任推给了“用户”——既然您想要关于正多边形更多的“话语权”,您就得对这个多边形负起更多的责任。权利与义务永远都是统一的!

 

现在,我们可以用这个新的“绘制正多边形函数”,来完成我们上节课的神奇图形了。我们将正N边形的“边长”统一设置为“40”,得到完整的代码如下图:

Scratch:海龟绘图(八)——接口设计

 

点击绿旗运行,您是否也得到下图中期盼已久的结果了呢?

 

Scratch:海龟绘图(八)——接口设计

通过对上次课的作业所做的深入分析,我们总结出了对于一个“绘制正多边形”程序来说最适合的参数——“边数”和“边长”。

我们这节课的主题叫“接口设计”。其实函数的所谓“接口”,就是“需要给函数提供哪些参数,以及函数返回什么值”。

海龟绘图这部分的函数不需要返回任何值,所以编写这类函数时,只要把用户需要给函数提供哪些参数设计好即可。

参数的“个数”也是很有讲究的——太少了不行,不便于用户控制函数的“行为”,就像我们之前那个“过于智能”的绘制正多边形的函数一样;太多了也不行,会给用户压上过重的负担,使用户“无所适从、苦不堪言”。

接下来,我们就设计一个“画圆”的函数,来说明“设计不当的过多参数”有何危害。

如果让您设计一个“画圆”的函数,您觉得哪些参数是必要的、哪些参数又是多余的呢?

提示:“圆”可以用边长较短、边数较多的正多边形来近似。

项目小结:

在今天的项目中,我们:

  1. 认识到了“老版本”的“绘制正多边形”程序的“问题所在”

  2. 了解了“接口”的概念;

  3. 明白了定义函数参数时,“参数过少”的缺点;

  4. 学会了如何修改“绘制正多边形”程序的“接口”,使其能画出正确的嵌套图形

您必须 登录 才能发表评论!