代写论文_只做精品原创论文! 好评100%、通过率100%_代写代发论文信誉最好的网站!

原创学术论文

代写论文操作流程 代发论文 代写代发合作期刊 文献翻译 代写论文信誉保证 代写论文专家阵容 代写论文合作加盟
当前位置: 主页 > 工科论文 >

虚拟实验构件的建模方法(2)


165 3.4 动态构件建模
动态虚拟构件是指具有复杂交互界面、能实时的动态的展示实验结果的虚拟实验构件,
如双通道示波器显示波形变化、万用表显示电路中的电压电流值等。为了充分展示动态虚拟
 构件的良好效果,利用Java 高级程序设计语言创建动态构件。所有动态信息保存在构件文
件的<jar>标签里。该动态构件的数据模型为:
170 <visualization-model>
<status> //构件可视化信息、功能信息
</status>
<jar name="example.jar "> //动态构件数据信息
</jar>
175 </visualization-model>
创建动态构件最重要的是开发虚拟构件对应的交互面板。该交互面板可以抽象成Java
中的一个接口:PluginAbstractDialog,该抽象类是所有动态构件的父类,封装了动态构件的
逻辑信息和相关的计算结果,在dynamic.jar 中实现。开发动态构件的Java 项目可以直接导
入dynamic.jar 作为库,然后重载并实现其父类的抽象方法:updateComponent(),包括添加
180 构建属性值、更新构件状态的代码等。每个动态构件可以做成一个Jar 包。
展示动态构件的过程可分为两个步骤:预览和保存。动态构件的预览可以通过创建一个
线程实现。该线程启动动态构件的Jar 包调用函数,在对话框中展示jar 包的静态内容。同
时,动态构建自动检测功能提高了构件设计的界面友好程度,如果构件的xml 文件中已经存
在一个表示动态构件的Jar 数据包,则询问用户是否更新。动态构件的保存可以通过编码转
185 换实现,把表示动态构件的jar 数据包以base64 编码的形式写到当前构件的xml 文件中的
<jar>标签里。
以中学物理学科的球杆模型实验为例,其动态构件的可视模型为:
图6 球杆模型试验的可视模型
190
动态构件建模的方法能够充分展示属性值变化时构件的动态效果,增强真实感。
3.5 参数化建模
对于外形相似的构件,利用参数化建模方法,可以有效减少设计工作量。例如,集成芯
片有74ls00、74ls04、74ls08、74ls54、74ls55 等多种,这些构件外观相似,设计时会有大量
195 的重复劳动,而参数化建模方法能起到事半功倍的效果。
参数化建模方法是预定一个构件模型作为模板,然后根据构件的物理参数,如管脚个数、
连接口类型数目等,适当调整模板的大小、位置等信息,设计出符合需求的具体实验构件,
建模流程如图7 所示。
 200 图7 参数化建模方法流程图
以集成芯片的参数化建模为例,当用户选择一个带参数的构件文件并触发参数化命令
时,该芯片构件的参数列表被读取到一个临时文件中,同时,构件的预定模板通过svg 渲染
加载到场景中。当用户通过交互设计调整构件的大小、位置等信息时,场景中的update()函
205 数自动被调用,执行构件的重新渲染和绘制。构件保存时,场景中构件的位置、大小等参数
信息重新写到临时文件中,并保存到构件xml 文件的相应位置上。参数法建模方法设计的集
成芯片可视模型如图8 所示,色环电阻可视模型如图9 所示。
图8 集成芯片的可视模型图
图9 色环电阻的可视模型
参数化建模方法只需要用户预定一个构件模型,然后依据物理参数适当调整原模型,就
可以得到一个具体的实验构件,能够节约大量时间,有效减少工作量,简化构件设计过程。
210 4 建模工具的实现
QT 是一个跨平台的C++图形用户界面应用程序框架,它不仅完全面向对象,模块化程
度高,可重用性好,还具有丰富的API,能够提供file, I/O device, date/time 等模板类,并支
持xml,实现本地界面与web 内容的无缝集成。因此我们利用QT 框架实现了基于上述数据
模型的虚拟实验构件的多种建模方法。
215 每个svg 元素都对应QT 中的一个item 类,如QGraphicsRectItem, QGraphicsLineItem,
QGraphicsEllipseItem 等,所有这些item 类都继承自共同的父类:QGraphicsItem。这些svg
元素通过在场景QGraphicsScene 中的渲染与绘制,从视口QGraphicsView 中显示出来。
对于简单的图形元素,如rectangle, ellipse, arc 等,先设置QPainter 的各种属性,如
setColor(), setPen()等,再通过draw 函数直接绘制出来,如drawEllipse()。
220 对于简单文本,同样可以采用drawText()实现。唯一的区别在于起始坐标。对于简单图
形,记录其boundingRect 的左上角坐标作为该图形在场景中的坐标位置。对于文本,svg 中
记录其boundingRect 的左下角坐标作为该文本在场景中的坐标位置,而场景中渲染时使用
的是左上角的位置标记,因此,在svg 中保存文本时,先根据文本的大小及左下角坐标值进
行转换,得到文本左上角的坐标,再进行保存。对于随实验运行结果动态改变的文本信息,
225 首先用QPainter 绘制一个rectangle 来存放待显示的文本,然后调用函数setDispalyText(),
把实验返回结果显示在rectangle 中。当实验运行并有结果值返回时,触发事件,调用该函
 数,实现文本的动态显示。
对于折线、多边形等复杂图形元素,由于需要记录每个拐点的坐标,因此需要设置事件
监听函数来监听场景中的事件QGraphicsSceneMouseEvent。在场景中设置一个枚举类型变量
mode,用来表征当前场景的状态。当mode 值为insertPolygon 230 或insertPolyline 时,表示场景
的当前状态为正在绘制折线或多边形。此时,若场景scene 监听到鼠标点击事件,就建立一
个数组用来记录每次鼠标点击处的场景坐标,然后把这些坐标点通过painter->drawPolygon()
或painter->darwPolyline()在场景中绘制出来。
对于svg 组,组内的每个svg 元素同样以QGraphicsItem 的形式,通过QPainter 进行渲
235 染和绘制而加载到当前构件的设计场景中。与单个svg 元素的区别在于:同一个组内的所有
元素是一个整体,对组内任何一个元素的拖动、缩放等操作,都表现为对组内所有元素的同
步操作。
5 结论
本文讨论了虚拟实验构件的数据模型,包括构件的基本信息、功能信息、可视信息以及
240 计算信息。该数据模型用xml 描述,可视信息单独保存在一组里,提高了可扩展性和可移植
性。为了更好的适应用户需求,提出了基于该数据模型的多种虚拟构件建模方法,包括图形
交互设计、基于图像的建模、矢量图导入、动态构件建模以及参数化建模,简化了构件设计
过程,增强了构件可重用性。如何进一步提高该模型的通用性是以后研究的重点。
 


原创学术论文网Tag:代写论文 职称论文发表 代写代发论文 代写职称论文
本站郑重声明:
  1、我们与数十所知名高校博士强强联手,保持常年稳定合作关系,论文质量更有保证;;
  2、写作领域涉及所有专业,实力操作,出稿更快,质量更高,通过率100%;
  3、所有代写文章,全部原创,包检测,保证质量,后续免费修改,保证通过;
  4、信誉实力服务,专业代写毕业论文,职称论文,硕博士论文,留学生论文,成熟操作;
  5、业务QQ:296931979 & 1536560517
------分隔线----------------------------
栏目列表
联系我们
业务QQ1:296931979
业务QQ2:1536560517
业务邮箱:xueshupaper@qq.com
工作时间:每周七天,9AM---9PM
服务承诺
正刊保证:合作所有刊物,全部正刊,新闻出版总署可查,假一罚十。

版权保证:写作老师全部安排对口专业硕博士,经验丰富,保证文章原创,保证文章质量,版权归您所有。

出刊保证:所有合作刊物,保证正刊,保证出刊,否则全额退款。

品质服务:全程跟踪服务,编辑部直接给您发通知,直接打电话编辑部核实录用情况,品质服务,全程无忧。

退款机制:诚信服务,成熟操作,只做有把握的单子;万一出现意外情况,您可以要求全额退款。

信誉保证:十年实力操作,十成功运作经验;诚信为本,实力做基础,信誉做保障;客户遍及海内外,实力信誉有口皆碑;选择我们,您就是选择放心。
推荐内容