首页 > 设计 > 媒体动画 > 正文

Authorware类和函数:挖掘Authorware函数作图功能

2020-09-19 18:45:28
字体:
来源:转载
供稿:网友
authorware是一种基于设计图标和流程线为结构的编辑平台,同时authorware 也具有丰富的函数和程序控制功能,将编辑系统和编程语言较好的融合到一起。authorware 的功能更强大,使用更简单,很容易被没有编程经验的教师所掌握,在实际教学中得到广泛地应用;同时使用多媒体编辑系统authorware 制作的多媒体课件,以图、文、声并茂的方式向学生提供知识、示范、练习,这种边演示边讲解的启发式教学方法,具有较高的趣味性和启发性,起到了非常好的教学效果。  
   在多媒体课件的制作时,尤其是理科一些图形制作或实验课件,要求的科学性、准确性很高,一般的制作软件力所不及,而像微软的可视化编程工具vb,vc等虽然完全可以做到,但需要足够的程序编制基础和经验,利用authorware 丰富的函数和程序控制功能可以解决这三者之间的矛盾。下面就是authorware开发的日常教学中常用一些学科积件,来和大家共享一下authorware简单而又实用的函数作图功能,希望能起到抛砖引玉的作用。
运用authorware函数模拟椭圆形成过程
在authorware中,没有直接提供画图函数,但我们都知道图形是由无数像素点构成的。因此我们可以利用authorware提供的画线段函数line()帮我们实现作函数图像,我们可以把所需图形划分为无数条微小线段(点),线段的起点为(x1,y1),终点为(x2,y2)。用计算机按所需轨迹绘制无数这些微小的线段近似代替你需要的函数图形。下面运用authorware模拟椭圆的形成过程:其中x=acos(ds),y=bsin(ds)(ds表示角参数)。要求:在画出椭圆的同时画出动点到两定点(焦点)的线段,以便明显呈现出椭圆的形成过程。
方法:在authorware的流程线上添加三个计算图标,在计算图标中分别输入下列程序。运行这些图标就可以在演示窗口中看到椭圆的运动轨迹。
 
设 置 初 值   
sx:=360
sy:=200
a:=160
c:=125
b:=(a*a-c*c)**0.5
j1:=0
ds:=0
x1:=0
y1:=b
setline(0)
setframe(1,rgb(0,0,200)) 
 
转   动   
y2:=b*cos(ds)
x2:=a*sin(ds)
line(1,sx+x1,sy-y1,sx+x2,sy-y2)
ds:=ds+0.04
x1:=x2
y1:=y2 
 
画 转 动 线   
line(1,sx-c,sy,sx+x2,sy-y2)
line(1,sx+c,sy,sx+x2,sy-y2,)
if ds<6.29 then
goto(iconid@"转动")
else
end if 
上述计算图标中的自定义变量分别表示为:
sx,sy-----直角坐标系中坐标原点在界面上的像素坐标;
a,b,c-----分别是椭圆标准方程的三个参数。
x1,y1,x2,y2------所画线段起讫两点的坐标。
ds------角度参数,在程序中由0增加到6.29,旋转一周。
上述计算图标中用到的系统函数有:setline(0)-----线条样式设置函数;
line(1,sx+x1,sy-y1,sx+x2,sy-y2)--------画线函数;setframe(1,rgb(0,0,200))------线型及颜色设置函数;goto  (iconid@"转动") ---------跳转函数。)
   计算机在执行以上三个计算图标的设置命令执行时能生动的画一个椭圆,就像和现实中用粉笔画图一样,逐步完成。使学生易于理解,对后面的椭圆的定义的理解会有积极的影响。如果想让学生直接参与学习活动,取得更好的学习效果,我们可以设计让学生在这个椭圆上、椭圆内,及椭圆外点击一些点,计算机自动计算该点到两定点的距离以帮助学生更好的理解椭圆定义,先设计一个热区响应及按钮响应交互组。热区的大小可扩充至按钮外的全部界面,在热区中放一个计算图标,一个显示图标,计算图标中可输入下列内容:


连线并计算距离   
fo:=sx-c
ft:=sx+c
pointx:=clickx
pointy:=clicky
setframe(1,rgb(255,0,0))
line(1,fo,sy,pointx,pointy)
line(1,pointx,pointy,ft,sy)
js:=js+35
mf:=int(int((((clickx-fo)**2+(clicky-sy)**2)**0.5+
((clickx-ft)**2+(clicky-sy)**2)**0.5)*100)/100+0.5)
if mf=321 | mf=319 then
   mf:=320
   end if
ms:=ms+1 
其中:clickx、clicky-------鼠标指针到左边界及上边界的像素点数目;int()----取整函数。
   在显示图标中输入下列内容:“|m{ms}f1|+|m{ms}f2|={mf}”,并显示适当区域,这样程序运行时,只要在界面上任意点击一些点,计算机会自动连接该点到两定点的连线段,并计算该点到两定点f1、f2的距离。学生可自己动手任意点击,通过计算机演示比较,引导学生寻找规律,由学生总结发现规律,然后教师归纳,从而得出椭圆的定义:把平面内与两个定点f1、f2的距离的和等于常数(大于|f1f2|)的点的轨迹叫做椭圆。这两个定点叫做椭圆的焦点 ,焦点间距离叫做焦距。上述定值常数常用2a表示。焦距用2c表示,因此有2a>2c。
同时针对定义进一步提出问题:为什么2a一定要大于2c呢?如果a取不同的值,会得到什么样的轨迹呢?接下去可利用authorware良好的交互性,继续这样设计:通过计算机提示用户:“已知两定点间距离2c=240,即c=120,接下来出现文本框让你输入a的任意值,计算机将依据你的值画轨迹,但不一定是椭圆,如入不同的值将产生不同的响应。a可能大于120或等于120或小于120。程序设计
如下:
 

其中“numentry>=120&numentry<=240”群组图标是限制画轨迹的范围,以防画出的椭圆超出界面,“numentry<120” 群组图标里放的是显示图标表示2a<2c时不能画椭圆。在“numentry>=120&numentry<=240”群组图标里放的是计算图标其中内容如下:
 
画椭圆   
sx:=360
sy:=200
c:=120
a:=numentry
b:=(a*a-c*c)**0.5
j1:=0
ds:=0
x1:=0
y1:=0
setline(0)
setframe(1,rgb(0,0,200))
repeat with j1:=0 to 1257
ds:=j1/200
y2:=b*cos(ds)
x2:=a*sin(ds)
line(1,sx+x1,sy-y1,sx+x2,sy-y2)
x1:=x2
y1:=y2
end repeat 
当a<c时,不能画椭圆,a=c时,只能得到一条直线,a>c时,会得到一个椭圆。通过交互从而强调定义中两长度的和必须大于焦距的长,即a必须大于焦距c的长,加深对椭圆定义的理解。
二、authorware函数作图原理延伸
  通上所述,authorware画轨迹的原理是通过描点法,就是按照预定的方程去描点,就能得到所需的轨迹图,比如抛物线的画法和椭圆画法原理一样,程序如下:


设 置 初 值   
sx:=360
sy:=200
x1:=-80
y1:=-0.016*(2*x1**2-5*x1+2)
setline(0)
setframe(1,rgb(0,0,200)) 
 
画   线   
x2:==x1+0.2
y2:=-0.016*(2*x2**2-5*x2+2)
line(3,sx+x1,sy+y1,sx+x2,sy+y2)
x1:=x2
y1:=y2 
 
再 画   线   
if  x2<80 then
goto(iconid@"画线")
else
end if 
再有:设a、b是线段的两端点,其在坐标轴上移动,可以用line函数画出所有的ab线段,用eraseicon函数擦除当前线段外的所有线段,使得在演示窗口只显示当前线段。可以在authorware上放三个计算图标,内容如下:


设 置 初 值   
sx:=360
sy:=200
t1:=0
y1:=0
setline(2)    --带箭头坐标
setframe(1,rgb(0,0,200))
line(3,360,350,360,20)
line(3,250,200,650,200)
setline(0)
setframe(1,rgb(0,0,255)) 


 
画   线   
1:=260-27*t1
x2:=0
y2:=-50*t1
line(3,sx+x1,sy+y1,sx+x2,sy+y2)
t2:=t1+0.0013
t1:=t2 
 
擦   除   
eraseicon(iconid@"s")
if t1<2.8 then
    goto(iconid@"s")
else
end if 

同理双曲线运动轨迹的画法一样,请感兴趣的朋友试试。
三、利用authorware制作转动的立方体
只要你深入研究authorware还可画更为复杂的函数图像,只要你熟练掌握authorware函数功能和良好的数学功底。下面利用authorware制作转动的立方体,整个程序流程图如下:

其中“赋值”计算图标内容为:
setframe(3, rgb(0,0,250))
x0:=400
y0:=1000
a:=5
b:=260
判断图标属性设置如下:
 
“作图”计算图标内容为:
x:=x+1
x1:=200*cos(x/50)
y1:=200*sin(x/50)
x2:=200*cos(x/50+pi/2)
y2:=200*sin(x/50+pi/2)
x3:=200*cos(x/50+pi)
y3:=200*sin(x/50+pi)
x4:=200*cos(x/50+3*pi/2)
y4:=200*sin(x/50+3*pi/2)
line(3,x0+x1,(y0-y1)/a,x0+x2,(y0-y2)/a)
line(3,x0+x2,(y0-y2)/a,x0+x3,(y0-y3)/a)
line(3,x0+x3,(y0-y3)/a,x0+x4,(y0-y4)/a)
line(3,x0+x4,(y0-y4)/a,x0+x1,(y0-y1)/a)
line(3,x0+x1,(y0-y1)/a,x0+x1,b+(y0-y1)/a)
line(3,x0+x2,(y0-y2)/a,x0+x2,b+(y0-y2)/a)
line(3,x0+x3,(y0-y3)/a,x0+x3,b+(y0-y3)/a)
line(3,x0+x4,(y0-y4)/a,x0+x4,b+(y0-y4)/a)
line(3,x0+x1,b+(y0-y1)/a,x0+x2,b+(y0-y2)/a)
line(3,x0+x2,b+(y0-y2)/a,x0+x3,b+(y0-y3)/a)
line(3,x0+x3,b+(y0-y3)/a,x0+x4,b+(y0-y4)/a)
line(3,x0+x4,b+(y0-y4)/a,x0+x1,b+(y0-y1)/a)
接下来你可以运行一下看看效果,一个旋转的立方体就展现在你面前了,虽然“作图”计算图标内容较多,但原理很简单,相信大家都能看懂。
authorware函数功能强大,只要你善于挖掘,完全可以画出更为复杂的轨迹图形,这里我也不再赘述,希望本文对你有所启发,挖掘authorware强大的函数功能,开发出交互性更好、更科学、更准确的教学软件。

   注:以上程序在计算机上调试过,请放心使用。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表