Authorware 4.0实现动态模拟画椭圆

一.目标

 
  根据椭圆第一定义,在同一平面内,只要点A满足到两个顶点F1F2的距离之和是一个常数(大于F1F2的距离),那么点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,设置它范围为(02∏)和步长为∏/180,充分借助Authorware 4.0本身的擦除技巧,便可实现画椭圆的动态模拟过程。以下图(1)和(2)是运行本程序,输入“15090”回车后得到的两幅图:


         图(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-5cy+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换成ccx+c换成cx ,把cy换成cy-c,把cy换成cy+c即可。

2.  变通性好。对本程序稍作修改,便可得到画双曲线的动态模拟过程。

3.  可移植性好。可以嵌入相应课件,实现界面等风格的统一。

4.  科学性强。能准确测出│F1A│、│F2A│、│F1A+F2A│的值,加深对椭圆第一定义的理解。