超级画板《动态几何教程》经典范例.docx
- 文档编号:4366000
- 上传时间:2022-11-30
- 格式:DOCX
- 页数:60
- 大小:3.70MB
超级画板《动态几何教程》经典范例.docx
《超级画板《动态几何教程》经典范例.docx》由会员分享,可在线阅读,更多相关《超级画板《动态几何教程》经典范例.docx(60页珍藏版)》请在冰豆网上搜索。
超级画板《动态几何教程》经典范例
超级画板《动态几何教程》经典范例
————————————————————————————————作者:
———————————————————————————————— 日期:
ﻩ
第九篇 经典范例
本篇将用更多的例子,展示《超级画板》的高级技巧所能做出的效果。
我们尽量从比较简单的问题开始。
对于每个例子的掌握程度,可以有三个层次。
第一个层次,是能用。
这是最容易的。
只要看看说明,动手做做,就能用了。
第二个层次,是会做。
这要多花点时间和精力,但也不难。
只要对照说明,一步一步地按文件在“对象工作区”中显示的对象性质和顺序来做,有些点的坐标和曲线的方程要复制粘贴一下,就会成功。
第三个层次,是明理。
这比较困难。
特别是有些点的坐标,有些曲线的方程,有些被测量的表达式,这些数学式子是如何设计出来的,不很容易理解。
我们没有对这些数学表达式的由来作进一步的说明。
数学功底较深厚的读者,花些力量能够理解其中的道理。
对多数的读者,只要能用会做就可以了。
如果有读者确实对文件中的某些表达式的设计原理有很大的兴趣而又百思不解,不妨在网上提出来讨论(例如在,或等网站上)。
相信能够得到满意的解答。
一 线段和圆弧的动态n等分点
1.等分线段的程序和函数
作出一条线段的等分点,例如3等分点或8等分点,这很容易。
最基本的做法,是用尺规作图。
《超级画板》可以实现尺规作图,当然能等分线段。
如果想快捷一些,可以使用作定比分点的文本作图命令。
在文本作图对话框的作点类的函数中可以找到这个函数:
DivisionPoint(A, B,r );
其中参数A、B是要等分的线段的两端的编号,r是分点所分的两端的长度的比。
例如,4个5等分点对应的比值顺次为1/4、2/3、3/2、、4/1。
这样,一行命令只能作1个分点。
如果要一次作出4个5等分点,可以用for循环语句:
for(i=1;i<5;i=i+1){DivisionPoint(A,B,i/(5-i));}
或while循环语句:
i=1;
while(i<5){DivisionPoint(A,B,i/(5-i));
i=i+1;}
也可以写成函数便于使用:
fd(A,B,n)
{for(i=1;i<n;i=i+1){DivisionPoint(A,B,i/(n-i) );}}
这些程序运行情形见文件“9-1等分线段.zjz”,如图9-1。
图9-1
注意图中程序工作区是浮动窗口。
双击上边框可使它归位,再双击它又成为浮动窗口。
2.线段的动态n等分点
但是,上面的程序作出的分点,分段数是不能变化的。
5等分就是5等分,7等分就是7等分。
能不能作一般的n等分点,当n变化时分点的个数也随着变化呢?
文件“9-2线段的n等分点.zjz”中的程序和动态图形,就是可以变化的n等分点。
如图9-2,拖动n的变量尺改变n的数值,分点的个数会随着改变。
图9-2
从作图的程序可见,先作出A、B两个自由点,再对两点的坐标进行测量。
根据测量的数据,可以写出线段AB的参数方程。
使用作参数曲线的函数命令:
Function(m000+t*(m002-m000),m001+t*(m003-m001),t,0,1,n+1,);
这里将曲线的描点数目设置为n+1,是因为所描的点的含线段的两端点,所以点数比分段数多1。
执行作参数曲线的函数命令后,做出的线段上并没有分点。
打开参数曲线的属性对话框,在左下部勾选“画点”(参看图5-17);点的大小可选择为2。
单击“确定”后,线段上的分点就出现了。
作出参数n的变量尺,拖动滑钮改变n的值,分点的数目随之改变。
这种方法,n<3时分点不出现,要平分线段至少要作出4等分点。
3.线段的可选择n等分点
上面的作图虽然实现了动态等分,但分点是不可选择的。
既不可能从分点出发来作图,也不可能改变某一个分点的大小颜色。
文件“9-3线段的可选择n等分点.zjz”实现了线段的可选择的动态n等分点作图。
如图9-3。
图9-3
作出这些分点的关键的函数ndf(p,q,n)的程序为:
ndf(p,q,n)
{for(i=1;i<100;i=i+1)
{DivisionPoint(p, q,sign(n,i)*i/(n-i) );}
}
这个函数中使用了for循环语句,作了99个点,所以最多把线段100等分。
但定比分点的分比为sign(n,i)*i/(n-i);这就是说,当i=1,2,…,n-1时(sign(n,i)=1),分比为i/(n-i),作出了n-1个n等分点;当i≥n时(sign(n,i)=0),分比为0,作出的点都和线段的端点A重合。
这种把多余的点隐藏起来的技巧,后面将多次使用。
这样作出的分点可以被选择,隐藏,改变大小和颜色,可以作为进一步作图的基础。
从图9-3看到,可以以分点为心作圆,以分点为端点作线段等等。
4.圆弧的动态n等分点
一般说来,用尺规作图只可能做出圆弧的某些等分点,例如2等分、4等分点。
已经证明,尺规作图三等分任意圆弧是不可能的。
当然,计算机作图不受这样的限制。
文件“9-4圆弧的n等分点.zjz”,作出了任意一段圆弧的动态n等分点。
拖动圆弧端点B、C可以改变圆弧的度数和它在圆上的位置;拖动圆心可以平移圆弧;拖动参数r的变量尺上的滑钮可以改变圆弧的半径;拖动参数n的变量尺上的滑钮可以改变分点的个数。
如图9-4。
图9-4
在程序工作区可以看到作出此动态等分点的主要程序:
A=Point(3,2,A);
cr=CircleOfRadius(A,r,);
B=PointOnConic(cr,B);
C=PointOnConic(cr,C);
ArcOnCircle(B,C,cr,);
MeasureExpress(u001+sign(u000,u001)*2*pi);
h=Function(rho=r,u000,m000,n+1, );
Translate(h,1,A,);
Variable(n,);
Variable(r,);
程序的前5行顺次为:
作自由点A;作以A为心半径为r的圆cr;在圆上取点B、C;作弧BC。
圆弧的等分点是这样作出的:
在极坐标下作一条和圆弧BC全等且方位相同的曲线,利用曲线属性的“画点”功能,作出曲线上的动态分点,再把曲线和分点平移到圆弧BC的位置,就得到圆弧上的分点了。
为了在极坐标中作出和圆弧BC全等且方位相同的曲线, 需要确定圆弧BC的两个端点在圆上的位置参数的关系。
打开点B和点C的属性对话框,可以看到两点的参数分别为u000和u001。
从B到C的圆弧,按超级画板的作图规则,总是沿反时针方向画出来的,而参数u000有时却会大于u001。
要使参数的大小关系和圆弧的走向一致,应当有u000 为此,当u000>u001时,我们给u001加上2π,得到m000=u001+sign(u000,u001)*2*pi,把u000和m000作为极坐标曲线ρ=r两端的参数,就能保证作出和圆弧BC全等且方位相同的曲线。 第6行测量语句,作出了变量m000=u001+sign(u000,u001)*2*pi,第7行语句作出以u000和m000作为两端参数的极坐标曲线ρ=r,描点数为n+1,编号为h。 执行后,要在曲线的属性对话框里勾选“画点”,并将“间断点最小值”设置得小些。 第8行,将极坐标曲线h沿向量OA平移到圆弧BC位置。 最后作出r和n的变量尺。 程序可以复制到新建立的文件的程序工作区执行。 注意,先执行前7行,再执行后3行。 执行后,不要忘了设置曲线的属性和调整参数n和r,用鼠标把它们拖开B、C两点,使分点正常地出现。 这种方法,n<3时分点不出现,要平分圆弧至少要作出4等分点。 5.圆弧的可选择的动态n等分点 图9-4显示的圆弧等分点,和图9-2中的线段等分点类似,都是不可选择的。 既不能给不同的分点染上不同的颜色,也不能将分点作为继续作图的基础。 例如,我们不能以一个分点为心作圆。 比照图9-3中作出线段的可选择等分点的方法,也可以作出圆弧的可选择等分点。 打开文件“9-5圆弧的可选择n等分点.zjz”,如图9-5,可以看到这里的圆弧等分点是可以选择的。 可以设置分点的大小和颜色,也可以以分点为心作圆,或以分点为心作线段。 图9-5 作图程序的前6行和图9-4中的程序前6行相同: A=Point(3,2, A); cr=CircleOfRadius(A,r,); B=PointOnConic(cr,B); C=PointOnConic(cr,C); ArcOnCircle(B,C,cr,); MeasureExpress(u001+sign(u000,u001)*2*pi); d=(m000-u000)/floor(n); Variable(n,); Variable(r,); for(i=1;i<100;i=i+1) {Rotate(B,A,sign(n,i)*i*d,);} 第7行计算出等分出来的一小段弧的弧度d;第8、9行作出参数n、r的变量尺;最后一行用for循环语句和以A为心的旋转变换,使点B旋转,作出99个点。 当i 这样,表面上就只看见分点了。 将上面的10行程序复制并粘贴到新文件的程序区,可以一次执行。 为了不显示分点的名字,在执行程序前可以先看看菜单项“对象|新点自动生成名字”。 如果此项前面有个勾,就单击它使勾消失。 这时执行程序,分点就没有名字了。 还要注意的是,程序执行后,圆弧两端点B、C会重合。 用鼠标把它们拖开即可。 为了显示分点,还要让参数n大于2。 [习题9-1]本节叙述的作圆弧等分点的方法,是对在圆上任意取点后作出的圆弧而言。 如果先指定了圆弧的两端点(自由点或约束点)和圆弧的圆心,该如何作出圆弧的动态n等分点呢? (提示: 作出圆弧的圆心,测量从圆心到圆弧端点的向量角来代替原作图方法中所用的参数u000和u001;具体分别见前述两文件的第二页。 ) 二 动态的正n边形和完全图 既然能够作圆弧的动态n等分点,当然也可以作动态的圆内接正n边形。 图9-6显示的是文件“9-6正n边形面积和周长.zjz”中所作的动态正n边形。 拖动参数n的变量尺上的滑钮,正多边形的边数会从3逐步增加到99。 不过,当n>40时,看起来已经几乎是一个圆了。 图9-6 和图形变化同时,正多边形的面积和周长的数据也会作同步的变化。 但这并不是对图上的正多边形直接测量得到的,而是测量对应的公式的结果。 图的右下方是文本作图命令: Function(rho=1, 0,2*pi,n+1, ); Variable(n,); MeasureExpress(floor(n)); MeasureExpress(pi); MeasureExpress(n*sin(2*pi/n)/2); MeasureExpress(2*pi); MeasureExpress(2*n*sin(pi/n)); CircleOfRadius(1,1,); 上面第1条命令是在极坐标下作方程为ρ=1的曲线,自变量θ的范围设置为0到2π,曲线上取n+1个点(注意,首尾两点重合,只看见n个点)。 这样画出来的曲线是圆。 在曲线的属性表中勾选“折线段”(图9-7),就成为正多边形了。 后面的几条命令留给读者自己理解。 图9-7 你会想到,使用类似于上一节图9-5中的程序,可以作出顶点可选择的动态正n边形。 其实,作正n边形比n等分圆弧要简单一些,其方法见于文件“9-7顶点可选择的动态正n边形.zjz”,如图9-8。 图9-8 比较一下,图9-7和图9-5的作图命令有哪些不同? 比正多边形复杂一些的图形是所谓的“完全图”。 准确地说,是从正多边形的顶点出发所作出的完全图。 也就是由一个正多边形和它的所有的对角线构成的图形。 例如,图9-9是顶点数为29的完全图。 图9-9 图9-9是由文件“9-8顶点数为素数的完全图.zjz”生成的。 图中有29×28/2=406条线段,图的结构看不清楚。 拖动图中的变量尺可减少顶点的数目,当顶点数为7时,如图9-10。 图9-10 在图9-9的右下部,显示有3行命令: for (n=1;n<30;n=n+1) {Function(3*cos(t),3*sin(t),t,2*n*pi/floor(m-1),2*n*pi+2*n*pi/floor(m-1),m,);} Variable(m,1,30, ); 在新窗口的程序工作区执行这3行命令,作出29条曲线。 在每条曲线的属性表中勾选“折线段”,并设置不同的颜色。 拖动m的变量尺时看到,当m的整数部分是小于30的奇素数时,图形是顶点为floor(m)的完全图。 如果想理解这些命令,可以在对象工作区先把29条曲线都隐藏了,再显示其中一条,让m变化,同时观察这一条曲线的变化,就能有所体会了。 当然,主要是会用这三行程序画图,道理不明白也无妨,以后慢慢学习。 当顶点个数不是素数,得到的可能不是完全图。 如图9-11。 图9-11 事实上,顶点数为8的完全图上应当有28条线段,但这里只有21条。 在图9-12中,画出了顶点数为8的完全图。 这是由文件“9-9完全图.zjz”所生成的。 图9-12 此文件中的程序和图9-9中的不同。 拖动参数n的变量尺改变顶点数目,可以得到顶点数小于30的所有完全图,图9-13是顶点数目为15的情形。 图9-13 这里,图中的点和线段都是可以选择的。 仔细读读这个文件所用的文本命令: a=Point(3,0,,,,); for(i=1;i<30;i=i+1)ﻭ{b=Point(3*cos(i*2*pi/floor(n)),3*sin(i*2*pi/floor(n)),,,,);ﻭc=Segment(a,b,);ﻩ if(i<16)ﻩ ﻩ {for(j=1;j<29;j=j+1)ﻭ{Rotate(c,1,j*2*pi/floor(n),);}}} Variable(n,1,30, ); 你会发现,这里是用for循环语句先作出正n边形的顶点;从第1个顶点向其他顶点连线段;再将这些线段以原点为中心旋转,便得到了所有的边和对角线。 [习题9-2]将文件“9-9完全图.zjz”(第1页)的程序复制到新窗口的程序工作区并执行;将生成的线段组成若干对象组(在文本作图函数列表中找寻有关命令),分别给每组线段设置不同的颜色,做出动态完全图。 [习题9-3]参看文件“9-9完全图.zjz”第2页,构作以若干自由点为顶点的动态完全图,如图9-14。 特别注意如何用文本命令设置动态alpha参数来控制对象的显示和隐藏。 图9-14 三文本排列 (一)验证角谷猜想 有一道十分有趣的数学计算题: 任选一个自然数,如果是偶数,就将它除以2;如果奇数,那就乘上3后再加上1;将每次所得的结果照上面的方法进行运算,经过若干次计算后,无论最初是什么数,得到的结果总是“1”。 以6为例: 6→6÷2→3→3×3+1→10→10÷2→5→5×3+1→16→16÷2→8→8÷2→4→4÷2→2→2÷2→1。 这个有趣的数字计算题就是“角谷猜想”。 这一猜想看似简单,但至今还无人能够证明。 这个猜想像著名的“歌德巴赫猜想”一样,已成为数学家们研究的重点课题了。 我们编个小程序来验证这一猜想,省去一步步计算的麻烦。 在程序区输入: jg(n) {x=1; Text(x,1,n); while(n>1) {x=x+1; if(Mod(n,2)==0){n=n/2;} else{n=3*n+1;} Text(x,1,n);}} 执行命令,然后输入“jg(6);”,再次执行结果如图9-15所示。 我们也可以将6改成其它数字反复尝试,看看这一猜想是不是普遍成立的。 参看文件“9-10角谷猜想.zjz”。 图9-15 (二)绘制九九乘法表 输入下面程序并执行可得图9-16。 参看文件“9-11九九乘法表.zjz”。 for(i=1;i<=9;i=i+1) for(j=1;j<=i;j=j+1) {Text(j,-i,i*j);} 图9-16 (三) 绘制杨辉三角 中学教学中在讲多项式展开,二项式定理,数列等内容时都要讲到杨辉三角,甚至在讲数学史的课上,也必然要提到它。 而讲到与杨辉三角相关的内容,我们第一步就是要画出杨辉三角。 在黑板上画出杨辉三角不太方便,一方面是难以排列整齐,另一方面就是当数值较大时,难以计算。 而利用超级画板编程来解决,就较为简单了。 在程序区输入: jc(n){if (n==0) {1;} else{n*jc(n-1);}} c(n,k){(jc(n)/(jc(n-k)*jc(k)));} yh(m) {for(k=0;k for(i=0;i<=k;i=i+1) {Text(2*i-k+3,m-k-5,c(k,i));}} 执行命令,然后输入“yh(6);”,再次执行结果如图9-17所示。 此程序先是利用递归的思想定义了阶乘函数jc(n),然后定义组合函数c(n,k),这为主程序yh(m)打好了基础。 主循环中是一个二次循环,控制着每行每列输出的文本个数以及文本值。 较难理解的是文本输出语句Text命令中横、纵坐标的控制,这并不是唯一的,读者可以尝试着改动。 参看文件“9-12杨辉三角.zjz”。 图9-17 (四)根据给出数列的递推公式 其中 画出它的图象。 首先自定义函数。 在程序工作区中输入下面程序: shulie(a,n) {for(i=1;i<=n;i=i+1) {Point(i,a,,,);a=1+1/a; }} 执行此函数,然后接着执行“shulie(2,10);”。 计算机返回结果“>>(233)/(144) #”,同时画出了数列前10项对应的图象(图9-18)。 其中Point(i,a,,,)的作用是在坐标(i,a)位置作点,i代表数列的项数,每循环一次加1。 a则代表数列每一项的值,每循环一次按照递推公式发生变化。 图9-18 图9-19 从图9-18可以观察出该数列趋向于一个常数的。 我们甚至可以改变首项 的值,譬如运行“shulie(3,10);”,数列还是趋向于一个常数,且是同一个常数(图9-19)。 于是很容易就猜想出: 该数列存在极限,且极限与首项无关。 进一步分析可以得出极限就是 的一个根 。 (为什么数列不趋向于 的另一个根 呢? 这牵涉到不动点方面的知识,有兴趣的读者可以利用超级画板作进一步探索) 若将原来程序中的Point(i,a,,,)改为Text(i,1,a),再执行“shulie(2,10);”,结果如图9-20所示。 其中Text(i,1,a)的作用是在坐标(i,1)位置生成文本,文本的内容为a。 Point和Text两个命令各有所长,请读者尝试体会。 参看文件“9-13数列图象.zjz”。 图9-20 四轨迹 轨迹的变化是很复杂的,当一个或多个主动点在运动时,与之相关的对象都要随之变化,可谓是“牵一发而动全身”! 其中的变化和奥妙肯定是无穷无尽的,等着我们这些数学爱好者去构造,去探索,去发现。 (一)动圆轨迹1 (1)先作一圆,圆心为原点O,点A在x轴上; (2)在圆上任取一点B,并以点B为圆心,过点A再作一圆(图9-21); (3)在程序区输入“Locus(7,8);”,执行命令; (4)双击新生成的图象,弹出对象属性对话框,将运动点的基本频率改成20,并改变轨迹颜色和填充颜色(图9-22); 图9-21 图9-22 (二)动圆轨迹2 (1)先作一圆,圆心为A,点B为圆上一点; (2)在圆上任取一点C,并以点C为圆心,CA为半径再作一圆(图9-23); (3)在程序区输入“Locus(8,9);”,执行命令; (4)双击新生成的图象,弹出对象属性对话框,将运动点的基本频率改成20;改变轨迹颜色和填充颜色(图9-24)。 参看文件“9-14动圆轨迹.zjz”。 图9-23 图9-24 (三)梯子模型 所谓梯子模型,又称等棍模型,是指有一个梯子斜靠在墙边,有一个物体挂在梯子上。 梯子滑动时,物体的运动路线如何? 转化为数学模型就是: 端点在坐标轴上运动的定长线段上某点的轨迹如何? 由于此轨迹变化很多,不借助计算机是很难探究的。 先构造图9-25作为基本图形,步骤如下,在x轴上任取点A,以原点O为圆心,OA长为半径作圆;在圆上任取点B,通过点B向坐标轴作垂线,得到C、D两个垂足,连接线段CD。 变化1: 图9-26是在图9-25的基础上,过点B作CD的垂线,点E为垂足,然后作B、E轨迹所得到的图形,此曲线被称为“星形线”。 变化2: 图9-27是在图9-25的基础上,过原点O作CD的垂线,点G为垂足,然后作B、G轨迹所得到的图形,此曲线被称为“四叶玫瑰线”。 变化3: 图9-27是在图9-25的基础上,过点B作CD的垂线,点E为垂足,作点B和线段BF轨迹所得到的图形。 变化4: 图9-28 是在图9-25的基础上,过原点O作CD的垂线,点G为垂足,作点B和线段OG轨迹所得到的图形。 变化5: 图9-29是在图9-25的基础上,作点B和线段CD轨迹所得到的图形。 如果点D不是垂足而是y轴上任意一点,则可得到图9-30,图形会随点D在y轴上的位置而变化;如果基本图形图9-25不是采用x轴和y轴,而是任意的两条相交直线,那么可得到的图形就更多了,图9-31,图9-32就是其中的两个。 参看文件“9-15动圆轨迹.zjz”。 图9-25 图9-26 图9-27 图9-28 图9-29 图9-30 图9-31 图9-32 图9-33 5百变曲线 看到下面图9-34中有这么多的小图片,你相信它们都是出自同一个课件,只是参数不同而已么? 确实难以置信! 即使相信,也会以为这个课件的制作相当复杂。 参看文件“9-16百变轨迹.zjz”。 图9-34 本课件制作步骤相当简单,如下: (1)任意作圆,圆心为点A,点B控制半径;在3个圆上分别取点C、D、E; (2)连接线段ED,并在ED上任取点F; (3)连接线段CF,并在CF上任取点G(图9-35); (4)作出以C、D、E为主动点,点G的轨迹;将轨迹属性中3个最大值中改为floor(2*a)*pi,floor(2*b)*pi,floor(2*c)*pi,运动点的基本频率改为1000,间断点的最小值改为1; (5)作出变量a,b,c的变量尺和动画按
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 动态几何教程 超级 画板 动态 几何 教程 经典 范例