在AUTHORWARE中如何利用line()函数作函数图象
在制作数学、物理课件时,通常需要绘制函数图象。在Authorware中,Line()函数能让我们方便的绘制出这样的图象.
一、 Line(pensize,x1,y1,x2,y2)函数简介.
Line(pensize,x1,y1,x2,y2)绘制作一条直线.其中参数pensize表示线条的宽度,x1,y1表示线段一端的坐标,x2,y2表示线段另一端的坐标.
例如:

绘制一条宽度为2,以(0,0)和(100,100)为端点的线段和一条宽度为5,以(0,0)和(50,150)为端点的线段。运行结果如下:

二、 以绘制指数函数
的图象为例.
1. 必要的坐标变换.
从上面的例中可以看出,line()中所使用的坐标系和通常的坐标系不同,其坐标原点(0,0)在左上角,y轴正方向向下.因此,为了使我们所作的图象与数学习惯相同,必须对坐标作变换:第一、移动坐标原点,通常是移到屏幕中点。如果文件的属性设置为800×600,通常把坐标原点移到(400,300);第二,将y轴作一个"镜面反射"的变换.经过这两个变换后,新坐标系中的点(x,y)在原坐标系中为点(400+x,300-y)
下面的实例绘制出y=2x的图象(x变化范围为-100~100),Line(1,0,300,800,300)
Line(1,400,0,400,600)的作用是画两条坐标轴,请读者注意第三行中体现的坐标变换:

运行结果为:

2. repeat while语句的使用
用line()作一般函数
的图象事实上是按顺序取一系列点(x1,y1),(x2,y2)……(xn,yn),并依次用线段连起来.我们通常使用repeat while….end repeat来实现.请看下面的实例:

运行后结果为:

下面对上面的代码稍作解释:
第一行,第二行分别作出两条坐标轴,第三行规定自变量从-3.5开始取值,第四行规定重复执行操作的条件,只要自变量的取值小于3.5,将重复操作,第四和确定"步长"为0.02,也就是自变量每隔0.02取一个点.第四行和第五行分别作出两段线段,这两段线段的端点分别在
上,由于authorware只提供以e为底数的指数函数,所以作一换底.这里,exp(x*ln(2)) 和exp(x*ln(0.5))分别就是
.这里值得一说的是为什么在自变量x和函数exp(x*ln(2)) 和exp(x*ln(0.5))前都有一个”20*”,这是因为line()中坐标是以屏幕像数为单位的,这个单位太小,我们把它放大20倍,当然,这个放大倍数可以根据需要尝试着修改.
这里我们可以对用Line()作函数
和图象小结如下:
假设自变量取值范围为(a,b);自变量每隔e取一个点.坐标原点在点(X,Y),坐标放大K倍,那么可以用如下一段代码作出
在(a,b)内的图象:
x=a
repeat while x<b
x=x+e
line(2,X+K*x,Y-K*
, X+K*(x+e),Y-K*
)
end repeat
三、 几个相关的具体问题.
1. 如何改变line()函数绘制出的图象的颜色?
在写line()之前加上一行:setfarme(1,RGB(r,g,b))可以改变line()绘制图象的颜色,如:
setfarme(1,RGB(255,0,0))
line(2,0,0,100,100)
可绘制出一条红线.
2. 如何擦除和移动line()函数绘制出的图象?
可以直接用擦除图标和移动图标来擦除和移动line()函数绘制出的图象.
3. 如何用line()函数绘制出带箭头的图象?
在line()之前可用setline(type)来设置线的类型,这里type是指定类型的参数,具体意义为:0,没有箭头;1,起始箭头; 2,终止箭头;3,两端箭头。
我们只要在画最后一条线段时加上终止箭头,就可以画出带箭应的图象:
如:

绘出的图象为:

前面我们画的坐标轴都没有箭头,读者可以试着画出有箭头坐标轴.
4. 如何用line()函数绘制出虚线图象?
要作出虚线的图象,只要使前一条线段的终点对应的x值小于紧接着的第二条线段的起点就可以了!有时为了使效果更明显,可以适当加大每次取点的"步长"
如果将上例中的代码改为:
Line(1,0,300,800,300)
Line(1,400,0,400,600)
x:=-3
repeat while x<2.5
x:=x+0.2
Line(2,400+20*x,300-20*x*x, 400+20*(x+0.1),300-20*(x+0.1)*(x+0.1))
end repeat
SetLine(2)
Line(2,400+20*2.5,300-20*2.5*2.5, 400+20*(3),300-20*3*3)
画出的图象即为:
