基于Authorware三视图模拟识图系统实现.docVIP

基于Authorware三视图模拟识图系统实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Authorware三视图模拟识图系统实现

基于Authorware三视图模拟识图系统实现   摘要   通过Authorware的图标化的编程方式,在Authorware中采用堆叠小立方体的方式,将15个小立方体随机填充到一个3*3*3的矩阵样式中,模拟空间的三维立体图形。在生成的模拟三维立体图形中,任选一个生成三视图,用热区响应的方式,选择与三视图对应的三维立体图形。实现三视图的模拟识图系统的制作,从而达到强化三视图识图的目的。   【关键词】Authorware 变量 函数 三视图   在机械零件图形绘制中,通常是用三视图来表达一个机械零件在各个面上的投影的轮廓形状。三视图一般指对象的主视图、左视图和俯视图,将机械零件用正投影法在三个相互垂直的投影面上产生的投影轮廓形状作为各自不同的投影图形,这种投影关系是一一对应的。CAD绘制三维图形时,常用的方法是将简单的二维图形,通过拉伸旋转和布尔运算之后,生成复杂的三维图形。对三视图的投影方法的理解以及三视图与三维图的对应关系,在工程绘图或CAD三维绘图都是很重要的一部分基础知识。在Authorware中用小立方体的方式构造空间立体,用堆叠立方体的方式构造空间物体。实现三视图识图系统的制作,通过使用此系统可以加强三视图识图能力的练习。   1系统设计思路   此练习系统中,采用小立方体单元堆叠的方式来构造网格式的空间立体对象,就象魔方玩具一样,空间立体对象是由3*3*3矩阵样式排列的小立体构成。系统中,用15个小立方体随机填充到不同的位置,就能构造出结构复杂又变化多样的空间立体,在系统界面中,每次构造6个立体对象,处于不同的位置而且每组随机取出一个立体构造其三视图。   用堆叠小立方体的方式构造空间立体时,从不可见的面向可见面堆叠。对于空间小立方体的绘制,建立一个用户坐标系,确定基点坐标及各个坐标轴方法(图1绘制小立方体坐标)。根据坐标轴的方向,在绘制空间立体各个小立方体单元,绘制时要按照从下向上(z坐标)、从右向左(y坐标)、从后到前(x坐标)的顺序来绘制,这样使空间位置靠前的小立方体能够遮住后面的小立方体。其中靠前的小立方体遮住后面的小立方体部位不可见的线,用白色的线条绘制。   在垂直于投影面的一列网格单元中,只要有一个位置被填充了小立方体,这列网格对应的投影位置就应出现一个小矩形。   制作此系统,首先建立基本的程序结构和界面,如图2所示。   在初始化中,设置变量stop和分组变量item设置初始值,设置stop:=0,item:=l。在决策图标的属性窗口,选择循环属性为直到判断值为真,并定义退出的条件为item20|stop=1,这样,当分组变量item达到20或者停止标志变量stop被置为1,都将结束这个决策循环,如图3所示。   2系统实现过程   打开群组图标,在一次测试流程图中,设置分支结构如图4所示。   2.1随机构造空间立体   在分支中,六次决策图标和之下的群组图标,用来在窗口中生成随机构造空间立体堆。其分支结构中,分别用三个计算机图标,依次为生成“立方体”、“画立方堆”、“下一个立方堆”来顺序执行。其后跟一个决策图标“选择立方堆”。   其中,“生成立方体”计算图标中,利用数组记录3*3*3矩阵网格各立方体填充情况,先对数组初始化,程序代码为:   Repeat with x:=lto3   Repeat with y:=lto3   Repeat with z:=lto3   E1:=x*100+y*10+z   Arrayset(el,0)   End repeat   End repeat   End repeat   N:=l   Repeat while n=15;利用变量n控制总数不超过15个   Rx:random(l,3,l);为变量rx随机选择一个1-3之?g的整数   Ry:=random(l,3,l);为变量ry随机选择一个1-3之间的整数   If arrayget(rx*100+ry*10+l)=0then   Arrayset(rx*100+ry*l0+1,1);判断代表网格单元的数组元素值是否为0,是则将其值置为1   Else   If arrayget(rx*100+ry*10+2)=0 then   Arrayset(rx*100+ry*10+2,1)   Else   If arrayget(rx*l00+ry*10+3)=0 then Arrayget(rx*100+ry*10+3,1)   Else   N:=n-1   End if   End if   End if   N:=n+1   End repeat   在计算图标“画立方堆”中,输入如下程序   Sx

文档评论(0)

fangsheke66 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档