资源描述:
《利用authorware的函数制作旋转移动的方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、利用Authorware的函数制作旋转移动的方法Authorware5.0提供了Motion运动图标,它可以提供五种运动功能,但要实现像时针这类的旋转移动,Motion运动图标则无能为力,这就要借助Authorware的函数来实现这一类运动,下面以制作时钟为例,这个例子中我们要用到以下几个函数: Line(Pensize,x1,y1,x2,y2):画线函数,其中Pensize是线的宽度,x1,y1线的起点坐标,x2,y2线的终点坐标。 RGB(R,G,B):颜色函数,R(红色)、G(绿色)、B(蓝色)取值范围是0~255。 图1建立钟表图形 SetFill(Flag[,Col
2、or]):设置填充颜色,Flag为True填充,Flag为False不填充,Color为RGB函数产生的颜色。 SetFrame(Flag[,Color]):设置边框颜色,Flag为True填充,Flag为False不填充,Color为RGB函数产生的颜色。 SetLine(Type):设置线条的形状,Type可以取0、1、2、3。取0没有箭头,取1起始端有箭头,取2结束端有箭头,取3两端都有箭头。制作过程如下: 1、拖曳一个显示图标到流程线上,命名为表盘,打开此图标在其中绘制图1的图形。 2、拖曳一个显示图标到流程线上,命名为系统时间,打开此图标在其中用文本工具输入{Ful
3、lTime}(FullTime是系统变量,记录系统时间,格式为hh∶mm∶ss),将该图标属性中Options中的UpdateDisplayedVariables项选中。 3、拖曳一个计算图标到流程线上,命名为设置参数。打开该图标在里面输入clockslice:=2*Pi/60(设置时间片)radius:=(DisplayWidth@"表盘"/2)-10(设置时钟半径,DisplayWidth@"表盘"取得的值是表盘图标的宽度)。 4、拖曳一个决策判断图标到流程线上,命名为循环。在其属性框的Repeat框中选中UntilTrue在其下的值框中输入0。 5、拖曳一个群组图标到循环
4、图标右边(如图2),打开群组图标在其中建立如图3所示的各图标。 在绘制时针计算图标中输入以下内容: SetFrame(1,RGB(0,0,255)) increment:=Hour*clockslice*5 angle:=Pi/2-increment Line(3,DisplayX@"表盘"-p*COS(angle),DisplayY@"表盘"+p*SIN(Pi/2+increment),(radius-sh-h)*COS(angle) +DisplayX@"表盘",DisplayY@"表盘"-(radius-sh-h)*SIN(angle)) 注:Hour是系统变量,
5、用来记录当前时间前面的时位是多少小时。 将1秒等待图标属性中所有复选框全部不选中,将TimeLimit后面的输入框中输入1秒。 在绘制分针计算图标中输入以下内容: SetFrame(TRUE,RGB(0,255,200)) increment:=Minute*clockslice angle:=Pi/2-increment SetLine(0) Line(3,DisplayX@"表盘"-p*COS(angle),DisplayY@"表盘"+p*SIN(angle),(radius-sh)*COS(angle)+ 图2程序流程图 DisplayX@"表盘",Displ
6、ayY@"表盘"-(radius-sh)*SIN(angle)) SetFill(TRUE,RGB(0,255,0)) Circle(2,DisplayX@"表盘"-2,DisplayY@"表盘"-2,DisplayX@"表盘"+2,DisplayY@"表盘"+2) 注:Minute是系统变量,用来记录当前时间中中间的分位是多少分。 在绘制秒针计算图标中输入以下内容: SetFrame(1,RGB(255,0,0)) increment:=Sec*clockslice angle:=Pi/2-increment SetLine(2) Line(1,DisplayX@
7、"表盘"-p*COS(angle),DisplayY@"表盘"+p*SIN(angle),radius*COS(angle)+DisplayX@"表盘", DisplayY@"表盘"-radius*SIN(angle)) SetFill(TRUE,RGB(0,255,0)) Circle(1,DisplayX@-2,DisplayY@"表盘"-2,DisplayX@"表盘"+2,DisplayY@"表盘"+2) 图3在群体图标中建立的图标 注:S