查看: 925|回复: 0
打印 上一主题 下一主题

利用Authorware的函数制作旋转移动的方法

[复制链接]
.    

3797

主题

11

听众

5万

积分

首席设计师

Rank: 8Rank: 8

纳金币
32328
精华
41

活跃会员 优秀版主 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2012-11-20 17:28:19 |只看该作者 |倒序浏览
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 [,Color]):设置填充颜色,Flag为***e填充,Flag为 False不填充,Color为RGB函数产生的颜色。
  SetFrame(Flag [, Color]):设置边框颜色,Flag为 ***e填充,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 ***e在其下的值框中输入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)+


  图2 程序流程图
  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)


  图3 在群体图标中建立的图标
【来源:软件学院】

更多精彩教程,尽在web3D纳金网http://www.narkii.com/college/
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-27 11:57 , Processed in 0.217712 second(s), 32 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部