咨询热线:

187 - 6397 - 2757

当前位置: 首页 > 新闻列表 > 编程与学科结合

济南少儿编程:用Scratch编程证明周长一定是正多边形面积最大!~山东少儿编程~少儿编程

    吴俊杰老师于17年7月初发布了一道Scratch题目,如图所示。经过4个小时的奋战,我终于搞定了这道题目。下面我对本程序进行汇整、说明:首先介绍数学反证法证明周长一定时正多边形面积最大;接着介绍Scratch反证法的思路;然后介绍程序的操作方法;最后介绍程序的数学原理以及设计思路。

济南少儿编程:用Scratch编程证明周长一定是正多边形面积最大!~山东少儿编程~少儿编程(图1)

    一、数学证明

    首先证明等周定理,然后利用等周定理即可得到推论:等周多边形面积最大是其正多边形。等周定理的定义:在周长一定的所有封闭平面曲线中,圆所围的面积最大。下面先来证明等周定理。证明:设K是周长一定而面积最大的图形,只要证明K是一个圆即可。以下分三步来完成。

    第一步:用反证法证明K是凸多边形。如下图所示,若K是一个凹图形, 那就一定可以在它上面找到两点A、B,其连线落在图形K的外部。以AB为轴,把曲线AmB对称到另一侧,称为曲线Am’M。图形AmBC与图形A m’BC的周长相等,而后者面积更大,这与K有最大面积矛盾。故K只能是凸图形。

济南少儿编程:用Scratch编程证明周长一定是正多边形面积最大!~山东少儿编程~少儿编程(图2)

    第二步:用反证法证明平分K的周长的弦也一定平分其面积。如下图所示,设凸图形K有最大面积,AB平分它的周长,且弦AB把K分成两部分Σ1和Σ2。Σ1≠Σ2,不妨设Σ1>Σ2,以AB为轴,把ACB对称到另一侧AC’B处,则周长ACBC’A等于K的周长,但面积ACBC’A>K的面积,这与K有最大面积矛盾。所以,平分K的周长的弦也一定平分其面积。

济南少儿编程:用Scratch编程证明周长一定是正多边形面积最大!~山东少儿编程~少儿编程(图3)

    第三步:证明平分周长、面积的弦是直径,从而K为圆。 用反证法。设AB平分K的周长和面积,在K的边界上任取一点C,只需证ACB为半圆。若不然,∠ACB≠90°,将下图左侧中的Σ1、Σ2剪下来,贴成另一个图形(下图右侧),其中A’C’=AC,B’C’=BC,∠A’C’B’= 90°。这两个图形中,曲线ACB的长等于曲线A’C’B’的长,但后者面积较大,与K有最大面积矛盾。故ACB为半圆,从而K是圆。

济南少儿编程:用Scratch编程证明周长一定是正多边形面积最大!~山东少儿编程~少儿编程(图4)

    于是,证得了等周定理:在所有等周的平面封闭图形中,以圆的面积为最大。下面证明周长相等的多边形中,正多边形的面积最大。

    证明:在所有周长相等的图形中,正多边形与圆形最接近,由等周定理的定义可知,正多边形的面积最大。

    二、Scratch反证法

    根据之前的证明可知正多边形面积最大,因此本程序可能的设计思想如下:

    1、展示如上数学证明思路。这样做虽然简单,但是很抽象,需要用户详细地跟随程序的指引完成证明过程。

    2、给定正多边形,让用户拖拽多边形顶点,同时保证等周的条件。如果用户找不到更大面积的情形,即反证了本题目。这样做虽然复杂,但是用户体验好,且有数学证明保证正确性。本程序选择此设计方法。

    三、程序操作说明

济南少儿编程:用Scratch编程证明周长一定是正多边形面积最大!~山东少儿编程~少儿编程(图5)

    四、程序数学原理

    本程序的难点在于拖拽顶点时保证等周,即周长不变。显然,椭圆的第一定义可以满足这一点:平面内与两定点F1、F2的距离的和等于常数2a (2a>|F1F2|) 的动点P的轨迹叫做椭圆。即 |PF1|+|PF2|=2a。

济南少儿编程:用Scratch编程证明周长一定是正多边形面积最大!~山东少儿编程~少儿编程(图6)

    根据定义可知,F1P+F2P=F1P’+F2P’,这就是等周的关键。当点击某个顶点时,得到左右相邻两顶点的坐标,以此作为椭圆的两焦点,计算F1P+F2P后即可得到椭圆的各个参数,然后限制顶点P的移动再次椭圆轨迹上即可保证等周。椭圆的一般化参数方程如下:

济南少儿编程:用Scratch编程证明周长一定是正多边形面积最大!~山东少儿编程~少儿编程(图7)

    其中参数t决定了顶点位于椭圆线上的位置,可以设置为鼠标在舞台上的角度;参数τ是椭圆和x轴的夹角;参数a、b是椭圆的长短轴长度;(h, k) 是椭圆中心点所在坐标。

    五、程序细节展示

    本文仅展示核心脚本。当点击某个顶点后,程序会寻找该点左右相邻的两个顶点坐标:

济南少儿编程:用Scratch编程证明周长一定是正多边形面积最大!~山东少儿编程~少儿编程(图8)

    变量beforePointX和beforePointY是第一个相邻点(即椭圆的第一个焦点)的XY坐标,变量afterPointX和afterPointY是另一个相邻点(即椭圆的第二个焦点)的XY坐标。变量_C保存了当前顶点到两焦点的长度和,即椭圆第一定义中的2a。接着计算椭圆参数方程中的关键参数:

济南少儿编程:用Scratch编程证明周长一定是正多边形面积最大!~山东少儿编程~少儿编程(图9)

    变量c1c2显然是椭圆中心点位置,即参数方程中的 (h, k);_C除以2即椭圆的半长轴a;根据椭圆a²-b²=c²可以计算变量b的值;最后计算τ,需要注意水平情况,即在椭圆未发生倾斜时,斜率公式分母为0,所以要特殊处理。得到基础数据后便可设置顶点的位置:

济南少儿编程:用Scratch编程证明周长一定是正多边形面积最大!~山东少儿编程~少儿编程(图10)

    变量鼠标方向就是参数方程中的t,设置为鼠标的当前方向:

济南少儿编程:用Scratch编程证明周长一定是正多边形面积最大!~山东少儿编程~少儿编程(图11)

山东机器人编程:家长要了解英国的少儿编程教育!~济南机器人编程~机器人编程(图6)

    速云少儿编程致力于 4 - 18 岁,山东少儿无人机编程教育机构,速云网络发软件工程师授课少儿编程教给孩子们不光要学习编程,还要结合编程知识给我们无人机写程序,实现我们无人机的自动启飞、人脸识别、智能跟随,包括更加高级的编程玩法,就是无人机编舞。可能家长想了!四岁孩子能学习无人机编程吗?那我们看个四岁的小同学吧,你自己看看能不能学习吧!

我们来看一看四岁小朋友的学习视频吧!

    家长担心孩子们真的能听懂课程吗?在每节课即将结束的时候我们都会进行课程汇报展示,来看一下小童鞋的汇报成果吧!

    这个时候家长可能说了,我们四岁的孩子,年龄辣么小,又不认字,那该如何学习呢?

    其实四岁、五岁的孩子不认字怎么学习?只要孩子识别颜色就可以学习。通过颜色识别具体编程积木,比如:蓝色是运动紫色是外观黄色是事件等等,通过颜色识别文字,根据颜色先实现出程序做出卡通的效果,以激发孩子兴趣,使孩子产生兴趣后开始具体学习每个积木的作用,再学习积木上面的文字。如下图:

家长关心孩子从小学习编程的6个问题都在这里了,你还在犹豫吗(图1)

    这个时候你还认为编程难吗?其实针对4岁起,就已经可以学习编程了。通过搭积木的方式让孩子学习编程。

    当然,比如我们下面的无人机编程视频吧!

    无人机能六架一起起飞?没错!那他又和数学有什么关系呢?

    小云说啦!这是根据我们数学中的坐标轴的 x轴 y轴 初始化无人机位置,无人机与无人机之间的距离、架数的多少,全部需要通过精密的计算,否则无法编排出理想的造型

    现在作为家长的你!还在纠结无人机编程是否对孩子有帮助吗?

无人机编程能做什么?人脸识别?智能跟随?自动飞行?还有吗?

答案:有!那就是"无人机编舞"!不知道无人机如何编舞?快看下面我们速云小童鞋的无人机编舞吧!!


    无人机编程都学习哪些内容呢?

       让无人机与编程结合?

没错!就是要让孩子“动手”+“编程”实现无人机起飞。

重点培养孩子逻辑思维能力与动手操作能力,让孩子在编写无人机程序的时,无形的锻炼孩子的逻辑思维能力和前沿科技的运用能力,在飞行学习中,孩子们需了解飞机的机械结构,练习手眼协同能力,甚至自己组装飞行器;在编程中,无人机可以在三维空间中,用摄像头完成巡线、人脸识别等人工智能任务。

例如:人脸识别,智能跟随,红外线定稿,光流定位、无人机编舞等。


无人机编程(图1)



当你的孩子还在学习机器人编程时,别人家的孩子却已经学习起了“无人机编程”(图7)

看我们小童鞋们上课视频吧

    坦克编程都学习哪些内容呢?

    动手组装”+“编写程序”

    通过编程将抽象理论与实践操作合二为一,让孩子重新理解知识,体验人工智能,培养独立思考的习惯和动手解决问题的能力。

    课程涉及机器人拼装、力学等数理知识,运用六类人工智能模块,编写专属的自动驾驶算法程序,让孩子更加深入理解人工智能技术。

    例如:人脸识别、智能跟随等前沿技术。


当你的孩子还在学习机器人编程时,别人家的孩子却已经学习起了“无人机编程”(图8)


当你的孩子还在学习机器人编程时,别人家的孩子却已经学习起了“无人机编程”(图9)

在线客服
热线电话

微信公众账号

在线购课

微信客服