文章查询
 请输入查询关键字:
  
    
 
  本期导读>>
 

在Authorware中绘制圆弧敏
浙江省电化教育馆    许夷臣

    要在Authorware中绘制弧线,人们一般先借助其它绘图软件作好所需的图形,然后用Authorware的菜单命令或剪贴板操作,将图输入进来,或者在Authorware的显示图标中用工具箱手工作图。本刊今年第3期《如何在Authorware中绘制带弧线的图形》一文中已例举了一些做法,但这些方法受软件本身功能的局限,往往不够灵活方便,难以精确地绘制任意曲率、任意长度的弧线,而且会使文件体积较大,降低了运行的速度。如果用系统自带的函数来绘制圆弧线,既方便灵活,最后生成的文件又小,笔者以为这是比较理想的方法之一。下面举例说明。
  本例只用到一个图标(如图1),所有的命令都在这个计算图标内(如图2)。

 
 
  以下按命令的功能逐句作一说明:
  1.x0:=WindowWidth/2
      y0:=WindowHdight/2
  这里用到了系统变量WindowWidth和WindowHeight,它们分别代表了程序展示窗口的宽度和高度。x0和y0表示XY坐标原点的位置,也用它来表示弧线所在圆的圆心坐标。
  2.r:=150
      t1:=30
      t:=t1
      t2:=120
  r表示所绘弧线所在圆的半径值,t1和t2分别表示所绘弧线的起始点和终止点与圆心连线(即扇形的二条边)相对于x轴的夹角度数,t则代表弧线上任一点的该夹角度数。
  3.SetLine(2)
      Line(1,100,y0,500,y0)
      Line(1,x0,400,x0,50)
  这三句命令绘出了XY水平坐标系(原点坐标为x0和y0),其中系统函数SetLine()中的数字用于设置直线的形状,2表示线段结束有箭头,即给其后绘制的x、y轴的末端加上了箭头。
  4.repeat while t<=t2
      x:=x0+r*COS(t*Pi/180)
      y:=y0-r*SIN(t*Pi/180)
      SetFrame(1,RGB(255,0,0))
      SetLine(0)
      Line(1,x,y,x,y-1)
      t:=t+0.1
      end repeat
  这里是一个Repeat while循环,角度t从t1(弧线起始夹角)开始,每循环一次,t就增大01度,直到t值为t2(弧线终止夹角)止。x和y表示弧线上某点的位置,该点位置随着t值的变化而从弧线的起点直到终点。这样,在每一次循环中,根据不断增大的t值,程序算出相应的x和y值,再由Line函数作出一条线段。这条线段是如此之短,使得看起来像一个点。许许多多个循环之后,这许许多多条依次紧紧相邻的线段在我们眼里看来成了一条漂亮的弧线。其中setframe用来设置线条属性,setFrame(1,RGB(255,0,0)表示画出的图形框线色彩为红色。
  5.SetFrane(1,RGB(0,0,0))
      Line(1,x0,y0,x0+r*COS(t1*      Pi/180),y0-r*SIN(t1*Pi/180))
      Line(1,x0,y0,x0+r*COS(t2*      Pi/180),y0-r*SIN(t2*Pi/180))
      Line(1,x0+r*COS(t1*      Pi/180),y0-r*SIN(t1*      Pi/180),x0+r*COS(t2*      Pi/180),y0-r*SIN(t2*Pi/180))
  这几个命令画出了弧线两端之间及两端到坐标原点的直线,形成一个弓形和一个扇形(如图3)。由于各端点的坐标值已经非常明确,故作连线并不困难。如果你不想在运行结果中出现某些线条,只要删去对应的作图命令即可。
 
  本例中,由于三角函数的周期性,t1和t2的值可以由你任选,弧线完全可以落在XY坐标系的其它象限中,甚至落在展示窗口外。选取不同的r、t1、t2、x0、y0变量值,可以非常准确地控制弧线的位置和姿态。若t2-t1=180,则可作出半圆;若t2-t1=360,则可作出正圆。这些不过是本程序的特例罢了。
  由于在Authorware的程序展示窗口中,以像素为单位的坐标系已经固定存在,只要巧妙地利用系统变量和函数,便可作出多种图形,尤其是数学、物理学科中能够写出方程式的图形。



你的评论   所有评论
昵称:
评论: