运用Authorware地函数绘制旋转移动的技巧
发布时间:2023-10-25 13:09:02 所属栏目:教程 来源:
导读:authorware5.0提供了motion运动图标,它可以提供五种运动功能,但要实现像时针这类的旋转移动,motion运动图标则无能为力,这就要借助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。 setfill(flag [,color]):设置填充颜色,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、 拖曳一个显示图标到流程线上,命名为系统时间,打开此图标在其中用文本工具输入{fulltime} ( fulltime是系统变量,记录系统时间,格式为hh∶mm∶ss),将该图标属性中options中的update displayed variables项选中。 3、 拖曳一个计算图标到流程线上,命名为设置参数。打开该图标在里面输入clockslice:=2*pi/60 (设置时间片)radius:=(displaywidth@"表盘"/2)-10 (设置时钟半径,displaywidth@"表盘"取得的值是表盘图标的宽度)。 4、 拖曳一个决策判断图标到流程线上,命名为循环。在其属性框的repeat框中选中until true在其下的值框中输入0。 5、 拖曳一个群组图标到循环图标右边(如图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是系统变量,用来记录当前时间前面的时位是多少小时。 将1秒等待图标属性中所有复选框全部不选中,将time limit后面的输入框中输入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)+ displayx@"表盘",displayy@"表盘"-(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@"表盘"-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) 注:sec是系统变量,用来记录当前时间中后面的秒位是多少秒。 6、 将文件保存,运行试试看。 (编辑:马鞍山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐