用Authorware 4.0实现动态模拟画椭圆
一.目标:
根据椭圆第一定义,在同一平面内,只要点A满足到两个顶点F1,F2的距离之和是一个常数(大于F1与F2的距离),那么点A的轨迹是椭圆。在Authorware
4.0中借助Circle(pensize,
x1, y1, x2, y2)函数和Line(pensize,
x1, y1, x2, y2)函数可以实现画点。在画圆函数中只要确定圆所在矩形区域的左上角坐标(x1, y1)和右下角坐标(x2, y2),使得矩形区域为一个较小的正方形区域;在画线函数中令x1= x2,
y1=y2。利用角度变量angle,设置它范围为(0,2∏)和步长为∏/180,充分借助Authorware
4.0本身的擦除技巧,便可实现画椭圆的动态模拟过程。以下图(1)和(2)是运行本程序,输入“150,90”回车后得到的两幅图:
![]() |
![]() |
图(1)
图(2)
二.
程序:
1. 程序流程如图(3)和(4) 在流程线上放置一交互图标,命名为初值,其右方放置一计算图标,设置其为文本输入响应。计算图标中输入内容为:
a:=NumEntry
b:=NumEntry2
a1:=a --a1为椭圆的长半轴
b1:=b --b1为椭圆的短半轴
c:=SQRT(a**2-b**2) --c为椭圆的半焦距
i:=0 --设置角度初值
xxflag:=1
--控制条件响应的条件
图(3)
k:=3 --动点半径
cx:=340 --原点的横坐标
cy:=240 --原点的纵坐标
Circle(3,cx-c-k,cy-k,cx-c+k,cy+k)
Circle(3,cx+c-k,cy-k,cx+c+k,cy+k) –画两焦点 图(4)
2.在交互图标下放放置一显示图标,命名为F1,双击打开,进入显示面板,输入字母F1,选中它,进入Modify----Icon----Properties,弹出一对话框,各项参数如图(5)所示。其中initial中输入的参数为点F1在屏幕上显示的位置,这样,当输入不同的a,b时,点F1的位置也相应发生改变。同法设置F2的相应参数为cx+c-5,cy+5。
3.在显示图标F2的下方,放置一交互图标,右方依次放置四个计算图标,两个显示图标,一个等待图标,两个计算图标。
(1)在“改变角度”计算图标中输入: i:=i+1
if i>360+45 then xxflag:=0
--设置角度终值。
(2)在“画点”计算图标中输入:
SetFrame(1,RGB(255,0,0))
--设置画笔颜色为红色
SetFill(1,RGB(0,0,255))
--设置填充色为蓝色 图(5)
angle1:=Pi*i/180
x:=cx+a1*COS(angle1)
y:=cy-b1*SIN(angle1) --椭圆的参数方程
Line(3,x,y,cx-c,cy) --画线段F1A
Line(3,x,y,cx+c,cy) --画线段F2A
a:=SQRT((x-cx-c)**2+(y-cy)**2) --计算线段F1A的长度
b:=SQRT((x-cx+c)**2+(y-cy)**2) --计算线段F2A的长度
设置其擦除方式为“After Next Entry”
(3)在“画椭圆”计算图标中输入:Circle(2,x-k,y-k,x+k,y+k)
(4)在“画线”计算图标中输入:
Line(3,cx-c,cy,x,y)
Line(3,cx+c,cy,x,y)
设置其擦除方式为“Don’t Erase”
以上各个计算图标均为条件响应,且把Condition设置为xxflag=1,Automatic设置为When True.。
(5)在显示图标A中输入字母A,同第二步把initial设为xs,ys;其附着计算图标中输入:
xs:=x+14
ys:=y-8
从而实现字母A随着动点的移动而移动。
(6) 在“显示数据”显示图标中输入:
│F1A│={a} │F2A│={b} │F1A│+│F2A│={a+b}
从而可以实现随时显示│F1A│和│F2A│及│F1A│+│F2A│的值。并设置为条件响应,把Condition设置为xxflag=1,Automatic设置为When True.。
(7) 在“等待图标”中设置为“Mouse Click”或“Key Press”。Condition中输入“i=90|i=150”
可以用于暂停,实现由动而静地观察作图细节。
(8)在“继续”计算图标中输入:
EraseAll()
GoTo(IconID@"初值")
并设为按钮响应。
在“退出”计算图标中输入“quit()”。并设为按钮响应
三.特点:
1. 交互性强。可以实现任意输入a,b的值(a>b),输入方法为“□,□”,其中的□代表任意的数,画出相应的第一类标准椭圆。要实现画第二类标准椭圆,只要把cx-c换成c,cx+c换成cx ,把cy换成cy-c,把cy换成cy+c即可。
2. 变通性好。对本程序稍作修改,便可得到画双曲线的动态模拟过程。
3. 可移植性好。可以嵌入相应课件,实现界面等风格的统一。
4. 科学性强。能准确测出│F1A│、│F2A│、│F1A│+│F2A│的值,加深对椭圆第一定义的理解。