先看下面的动画演示,你能给出答案吗?
海龟-文末有制作教程
这就涉及到椭圆是怎么来的!
什么是椭圆——将圆拉伸 / 压扁?
椭圆的定义是什么?
椭圆的定义
平面内与两个定点F1,F2的距离的和等于常数(大于|F1F2|)的点的轨迹叫做椭圆。
结合动画演示,看看什么是椭圆:
画椭圆
通过动画演示,对椭圆就有直观形象的认识!
由此,一开始提出的问题,也随之得到解答!
所以,理解椭圆的定义,还可以换个角度想,很有趣——从点F1沿直线跑向椭圆上任何一点,再沿直线跑向点F2,其总距离都是一样的!
新问题来啦:|MF1|加上|MF2|怎样才能是一个定值?
解决这个问题,即有制作该动画的思路!
“画椭圆”的制作
- 两线段的距离之和为定值,不妨考虑将两线段转化为在同一直线上
- 因为定值——可考虑圆,一个固定的圆,其半径为定值
- 等量的转化——考虑作中垂线,中垂线上的点,到线段两端点的距离相等
据此,我们可以写出指令:
如需word版,请看啊K个人介绍
其中,公式文本("|MF_1|+|MF_2|=" +h+ "+" +i + "=" +(h + i))是直接在指令栏中输入,具体理解可见让你彻底搞定GeoGebra的文本问题「文本进阶」。也可以用第二种方式——在文本框里操作,具体请见学会了这些,还怕搞不定GeoGebra的文本问题吗?。
我们采取快捷的方法——直接复制所有指令,粘贴到GeoGebra按钮的脚本里:
可以看到生成的轨迹是椭圆,而且是整个显示。
那么,如何做到动态生成轨迹的效果?
划重点:
创建滑动条k',最小值为0,最大值为1;并在其更新脚本里输入:赋值(k,k')
将滑动条k的最大值改为:k'
这样做,拉动滑动条k’就有画椭圆的效果。
【这么做,可理解为:loc1 = 轨迹(M, k)由滑动条k控制,k的取值决定了M生成的轨迹。既然k为1时,可以生成完整的轨迹,那么控制k的最大值慢慢增大到1时,就可以让轨迹慢慢生成。】
如果想要通过按钮来控制轨迹的生成,只需创建按钮,其脚本为:
赋值(k',0)
启动动画(k')
自此就完成画椭圆的作品!
海龟效果的制作
海龟移动的效果是怎么制作的呢?
海龟( )
turtle( )
GeoGebra中,只需在指令栏输入海龟( ),敲完回车键,在绘图区原点(0,0)处便会显示一只海龟。
让海龟动的指令有前进(TurtleForward)、后退(TurtleBack)、左转(TurtleLeft)、右转(TurtleRight),具体语法为:
前进( <海龟>, <路程> )
后退( <海龟>, <路程> )
左转( <海龟>, <度|弧度> )
右转( <海龟>, <度|弧度> )
所以,为了方便,我们把(0,0)作为椭圆的左焦点,也就是海龟的起点。
而海龟旋转的角度,可以用线段斜率(slope)的反正切值,或者用角度(angle)指令。
至于椭圆,不想输入椭圆方程,也可以用椭圆工具:
已有椭圆c,左、右焦点分别为A、B。于是,可以书写指令:
如需word版,请见啊K个人介绍
【备注:反正切用atand,返回角度,以度作为单位。而atan返回的角度,以弧度为单位。】
让海龟1、海龟2“动”的指令,我们分别写进按钮“海龟1演示”、“海龟2演示”的脚本里。
创建按钮“海龟1演示”,脚本为:
左转(海龟1,α)
前进(海龟1,距离(A,D))
右转(海龟1,β)
前进(海龟1,距离(B,D))
创建按钮“海龟2演示”,脚本为:
左转(海龟2,α1)
前进(海龟2,距离(A,E))
右转(海龟2,β1)
前进(海龟2,距离(B,E))
想多次演示,可创建按钮“复位”,脚本为:
删除(海龟1)
删除(海龟2)
海龟1 = 海龟()
海龟2 = 海龟()
删除( <对象> )
删除(delete)指令:删除对象,及其从属对象。
这里用删除指令,再重新创建海龟。是因为新建的海龟就在我们要的起点处,书写起来也较为容易。
至此,海龟效果的制作就完成了,至于文本可以自行输入。
啊K这么赞,不如给32个赞?