




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要关键字目录1、绪论 1.1 G语言与虚拟仪器的概述 1.1.1 G语言的概述 虚拟仪器编程语言LabVIEW是一种图形化的程序语言,又称为“G”语言。LabVIEW是一个功能比较完善的软件开发环境,它是为替代常规的BASIC或C语言而设计的。作为编写应用程序的语言,除了编程方式不同之外,LabVIEW具有编程语言的所有特性。使用这种语言编程时,基本不用写代码,取而代之的是流程图。G语言是一种适合于任何编程任务,具有扩展函数库的通用编程语言。G语言和传统高级编程语言的最大的差别在于编程方式上的不同,一般高级语言采用的方法为本编程,而G语言采用图形化编程方式。G语言编写的程序称之为虚拟仪器VI(Virtual Instrument),因为它的界面和功能与真实仪器基本相似,在LabVIEW环境平台下开发的应用程序都会被冠以.VI的后缀,以表示虚拟仪器的含义。G语言定义了数据类型、结构类型和模块调用语法规则等编程语言的基本要素等,在功能的完整性和应用的灵活性上毫不不逊于任何高级语言,G语言同时还具有丰富的扩展函数库。这些扩展函数库主要面向数据采集、GPIB以及串行仪器控制、数据分析、数据显示与数据存储等途径。G语言还包括常用的程序调试工具,例如包括断步调试、允许设置断点、数据探针和动态显示执行程序流程等功能1。1.1.2 虚拟仪器的概述 虚拟仪器(Virtual Instrument)就是在以计算机为核心的硬件平台上,根据用户对仪器的设计定义,具有虚拟面板、用软件实现虚拟控制面板设计和测试功能的一种计算机仪器系统。使用者用鼠标点击虚拟面板,就可以操作这台计算机系统硬件平台。它是将现有的计算机技术、软件设计技术和高性能模块化硬件结合在一起而建立起来的功能强大而又灵活易变的仪器。虚拟技术、计算机技术与网络技术是信息技术最重要的组成部分,它们被称为21世纪科学技术中的三大核心技术。电子测量仪器发展至今,大体经历了模拟仪器、分立元件式仪器、数字化仪器和智能仪器。目前,微电子技术和计算机技术的飞速发展,测试技术与计算机层次的结合使得虚拟仪器应运而生。虚拟仪器的出现导致了传统仪器的结构、概念和设计观点都发生了巨大变革,使得人类的测试技术进入了一个新的发展纪元。在过去的20年中,个人电脑应用的迅速普及促进了测试测量和自动化仪器系统的革新,其中最显著的就是虚拟仪器的出现与发展。虚拟仪器为工程师和科学家们提高生产效率、测量精度以及系统性能方面做出了卓越的贡献。虚拟仪器的概念是由美国国家仪器公司提出来的,虚拟仪器本质是虚拟现实一个方面的应用结果。也就是说虚拟仪器是一种功能意义上的仪器,它充分利用计算机系统强大的数据处理能力,在基本硬件的支持下,利用软件完成数据的采集、控制、数据分析和处理以及测试结果的显示等,通过软、硬件的配合来实现传统仪器的各种功能,大大突破了传统仪器在数据处理、显示、传送、存储等方面的限制,使用户可以方便地对仪器进行维护、扩展和升级。(2-1) 虚拟仪器的主要特点有: 1、在通用硬件平台确定后,又软件取代传统仪器中的硬件来完成仪器的功能;2、仪器的功能是用户根据需要又软件来定义的,而不是事先由厂家定义好的;3、仪器性能的改进和功能扩展只需进行相关软件的设计更新,而不需要购买新的仪器;4、研究周期较传统仪器大为改进;5、虚拟仪器开放、灵活,可与计算机同步发展,可与网络以及其他周边设备互联。(3-2) 虚拟仪器实际上是一种按照仪器需求组织的数据采集系统,其研究中涉及的基础理论主要是数据采集和数字信号处理。(7-1)决定虚拟仪器具有上述传统仪器不可能具备的特点的根本原因在于:“虚拟仪器的关键是软件”。1.1.3 虚拟仪器的构成以及分类1、 虚拟仪器的构成 虚拟仪器是由通用仪器硬件平台(简称硬件平台)和应用软件两大部分组成。 (1)硬件是虚拟仪器工作的基础,主要完成被测输入信息的采集、放大、传输、存储处理和输入/输出等工作,由计算机硬件平台和测控功能硬件(I/O接口设备)组成(4-2)。1)计算机,它是硬件平台的核心。2)I/O接口设备,它主要完成待测输入信号的采集、放大和模/数转换等。 根据I/O接口设备的不同,虚拟仪器主要分为PC-DAQ、GPIB仪器、串口仪器、VXI模块、PXI模块五个模块。其虚拟仪器构成图如图1-1所示。 PC-DAQ:它是以数据采集板、信号调理电路及计算机为硬件平台组成的插卡式虚拟仪器系统。这种系统采用PCI或ISA计算机本身的总线,只需要将数据采集卡板(DAQ)插入计算机机箱内的空槽中即可使用。GPIB仪器:它是以GPIB标准总线仪器与计算机为硬件平台组成的仪器测试系统。串口仪器:它是以Serial 标准总线仪器与激素那几硬件平台组成的仪器测试系统。VXI模块:它是以VXI标准总线仪器模块与计算机为硬件平台组成的仪器测试系统。PXI模块:它是以PXI标准总线仪器模块与计算机为硬件平台组成的仪器测试系统。 (2)虚拟仪器的应用软件由应用程序和I/O接口设备驱动程序。这些软件开发工具为用户设计虚拟仪器应用软件提供了良好开发环境。 1)应用程序。它包含两个方面的程序:实现虚拟面板功能的前面板软件程序和定义测试功能的流程图软件程序。 2)I/O接口仪器驱动程序。这类程序用来完成特定外部硬件设备的扩展、驱动与通信。开发虚拟仪器,必须有合适的软件工具。目前已有多种虚拟仪器的软件开发工具。包括文本式编程语言:如C、VisualC+、Visual Basic 、Labwindows/CVI等和图形化编程语言:如Labview 、HPVEE等。这些软件开发工具为用户设计虚拟仪器应用软件提供了最大限度的方便条件与良好的开发环境。(3-3) 2、虚拟仪器的分类 虚拟仪器有多种分类方法,既可以按照应用领域分,也可以按照测量功能分,但是最常用的还是按照构成虚拟仪器接口总线的不同,分为基于数据采集(DAQ)卡的虚拟仪器、基于GPIB总线的虚拟仪器、基于VXI总线的虚拟仪器、基于RS-232C总线的虚拟仪器、基于PXI总线的虚拟仪器、基于LXI总线的虚拟仪器、基于USB总线的虚拟仪器和基于IEEE-1394总线的虚拟仪器。 1.1.4 虚拟仪器的优点与应用1、虚拟仪器的优点可归纳为:(1)软件是核心。根据系统设计的要求,在选定系统控制用计算机以及一些标准的一起硬件模块或者板卡后,软件部分就成为构建和使用虚拟仪器的关键所在。其中,仪器驱动程序的功能是实现与仪器硬件的接口和通信,应用软件则完成用户定义的测试和仪器的功能,并提供人机交互界面。在进行应用程序开发时,可以利用NI公司开发的LABVIEW与LABWINDOWS/CVI,HP公司的VEE等集成开发环境。可以看出,软件在虚拟仪器的技术中占有十分重要的作用,NI公司提出的“软件即仪器”(Software is Instrument)就是这一特点的形象概括、 (2)灵活性和可扩展性。虚拟仪器打破了传统仪器由厂商定义功能和控制面板,用户无法更改模式。一起用户可根据自己不断变化的需求,自由发挥自己的想象力,方便灵活的重组测量系统,系统的扩展,升级可随时进行,而且系统的更新的周期短,见效快,能充分的满足用户在不同的场合的应用需求。 (3)性价比高。虚拟仪器可以将在传统一起中一些由硬件完成的功能转为软件实现,减少了自动测试系统的硬件环节,降低了系统的开发成本和维护成本。虚拟仪器能够同时对多个参数进行实时高效的测量,信号传输大部分采用数字信号的形式,数字信号处理主要依赖软件来实现,大大降低了环境干扰和系统误差的影响。用户可以随时根据需求调整虚拟仪器的功能实现“一机多型”和“一机多用”。因此,是用虚拟仪器比传统仪器更加经济。 (4)人机界面友好。虚拟仪器的操控界面采用的是图形化编程技术实现的一种虚拟面板或者称为软面板。虚拟面板可以模拟传统仪器面板的世纪风格来设计,也可以由用户根据实际需求来进行定制设计。测量结果可以通过计算机屏幕以曲线,图形,数据或者表格等形式显示出来。 (5)与其他设备互联功能强大。虚拟仪器通常具备标准化的总线或者通信接口,具有和其他设备互联的功能。例如,虚拟仪器能够通过以太网与Internet相连,或者通过现场总线完成对现场设备的监控和管理等。这种互联能力使得虚拟设备系统功能显著增强,应用领域明显扩大。 虚拟仪器是对传统仪器概念的重大突破,虚拟仪器与传统仪器的最重要区别之一是:虚拟仪器的功能由用户自己定义,而传统仪器的功能完全由厂商事先定义好的。相关比较如表1-1所示。 仪器虚拟仪器传统仪器关键技术关键是软件关键是硬件费用卡法与维护的费用低开发与维护的费用高技术更新周期短(1-2年)长(5-10年)价格低,可重用与可配置性强高功能定义用户定义仪器功能厂商定义仪器功能开放性系统开放,灵活,可与计算机技术保持同步发展系统封闭,固定连接性与网络及其他周边设备方便互联的面向应用的仪器系统功能单一,互联的有限功能的独立设备2、虚拟仪器的应用 虚拟仪器的出现代表着从传统硬件为主的测量系统到以软件为中心的测量系统的根本性转变。新的以软件为中心的虚拟仪器系统为用户提供了创新技术并大幅降低了生产成本。相比较于示波器等传统的仪器,虚拟仪器的灵活性、低价位以及插入化和网络化硬件等技术的革新,使得它的应用前景更加广阔。 虚拟仪器技术作为现代仪器技术与计算机技术相结合的创新技术,已被广泛应用于电子、机械、通信、汽车制造、生物、医药、化工、科研、军事和教育等各个领域。尤其在工程应用和社会经济效益方面具有突出优势。1、应用于测试与测量 ,它已经成为测试与测量领域的工业标准。2、应用于过程控制盒工业自动化,得益于其强大的硬件驱动、图形显示能力和便捷的快速程序设计,使得它为过程控制和工业自动化应用提供了优秀的解决方案。3、应用于实验室研究与自动化,它为科学家和工程师提供了功能强大的高级数学分析库,可满足他们计算分析的需要。1.1.5 虚拟仪器的发展和现状 1、虚拟仪器的发展 追溯电子测量仪器的发展历史,大体经历了以下的发展历程: 第一代模拟仪器。 这类仪器在某些实验室里还能看到, 他是以电磁感应基本定律为基础的指针式仪器, 如指针式万用表、指针式电压表、 指针式电流表等。 第二代分立元件式仪器。 当20世纪50年代出现电子管、60年代出现晶体管时,便产生了以电子管火晶体管电子电路为基础的第二代测试仪器分立元件式仪器。 第三代数字化仪器:。20世纪70年代,随着集成电路的出现,诞生了已集成电路芯片为基础的第三代仪器数字式仪器。这类仪器相当普及,如数字万用表、数字频率计等。 第四代智能仪器。随着微电子技术的发展和微处理器的普及, 以微处理器为核心的第四代仪器 智能式仪表迅速普及。 这类仪器内置微处理器, 可以进行自动测试和数据处理功能, 习惯上称为智能仪器。 其缺点是他的功能都是以硬件的形式存在, 无论是开发还是应用, 都缺乏灵活性。 虚拟仪器。 目前, 电子测量仪器领域出现了一种全新的仪器 虚拟仪器。 虚拟仪器与智能仪器有点类似, 它是将仪器装入计算机, 以通用的计算机硬件以及操作系统为依托, 来实现各种仪器功能。 采用虚拟仪器技术构建的测试仪器, 具有开发效率高、 可维护性强、 测试精度高、 稳定性和可靠性好等优点, 因此具有较高的性能价格比, 便于节省投资、 设备更新和功能转换与扩充1-3。 2、 虚拟仪器的现状 近年来,世界各国的虚拟仪器公司开发了不少虚拟仪器开发平台软件,以便使用者利用这些仪器公司提供的开发平台软件组建自己的虚拟仪器或测试系统,并编制测试软件。最早和最具影响的开发软件,是 NI公司的 Lab VIEW软件和 LABWINDOWS/CVI开发软件。Lab VIEW采用图形化编程方案,是非常实用的开发软件。Lab WindowsCVI是为熟悉C语言的开发人员准备的、在Windows环境下的标准ANSIC开发环境。除了上述的优秀开发软件之外,美国HP公司的HPVEE和HPTIG平台软件,美国TEKTRONS公司的EzTest和TEKTNS软件,以及美国HEM Data公司的SnapMARTER平台软件,也是国际上公认的优秀虚拟仪器开发平台软件 虚拟仪器的突出成就不仅是可以利用PC机组建成为灵活的虚拟仪器,更重要的是它可以通过各种不同的接口总线,组建不同规模的自测试系统。虚拟仪器系统的基本构架包括功能强大的软件、模块化的测量硬件及标准商业科技(如个人计算机和网际网络)。虚拟仪器技术包含了专为控制应用设计的软件及针对不同频率与精确度范围的通用测量硬件,因此,工程师可以在测试或控制应用中自行定义测量功能。 1.2 LabVIEW的简介 LabVIEW(laboratory virtual instrument engineering workbench) 是一种用图表代替文本创建应用程序的图形化编程语言,它是由美国公司推出的虚拟仪器开发平台,也是目前应用最广、发展最快、功能最强的图形化软件集成开发环境。它广泛地被工业界、学术界和研究实验室所接受,被公认为是标准的数据采集和仪器控制软件。 LabVIEW大大简化了虚拟仪器系统的开发过程,缩短了系统的开发和测试周期。它作为一种图形化编程语言,是真正面向科学家和工程师的编程语言,被誉为“科学家与工程师”的语言。 以LabVIEW为代表的图形化程序语言又称“G”语言。使用这种语言编程时,基本不需要编写程序代码,而是”绘制”程序流程图。LabVIEW尽可能利用工程技术人员所熟悉的术语、图标和概念,因而它是一种面向最终用户的开发工具,可以增强工程人员构建自己的科学和工程系统的能力,可为实现仪器编程和数据采集系统提供便捷途径。LabVIEW为虚拟仪器者提供了一个便捷、轻松的设计环境,利用它,设计者可以像搭积木一样,轻松组建一个测量系统和构建自己的仪器面板,而无需进行任何繁琐的计算机代码的编写。LabVIEW是虚拟仪器必不可少的一部分,因为它为用户提供了一个简单易用的程序开发环境,特别考虑了工程师和科学家的需要而专门设计。它主要有以下特点:)、图形化编程软件,设计者无需写任何文本格式的代码,是真正的工程师的语言;)、提供了丰富的数据采集、分析及存储的函数库;)、即提供了传统的程序调试手段,如设置断点、单步运行,同时提供有独到的高度执行工具,使程序动画式运行,利于设计者观察程序运行的细节,使程序的调试和开发更为便捷。采用传统的调试手段与新颖的高亮显示,更有利于编程人员进行测试;)、32bit的编译器编译生成32bit的编译程序,保证数据采集、测试和测量方案的高速执行;)、囊括了DAQ、GPIB、PXI、RS-232/485在内的各种仪器通信总线标准的所有功能函数,使得了那些不懂总线标准的用户也能够驱动不同的总线标准接口设备与仪器;)、提供大量与外部代码或软件进行连接的机制,诸如DLLs(动态链接库)、DDE(共享库)、ActiveX等;)、强大的Internet功能,支持常用网络协议,方便网络、远程测控仪器的开发。 3-4 正因为LabVIEW这些强大的优势,使得它广泛应用于工程处理的每一个阶段,从研发设计到测试,再到生产无处不见LabVIEW的应用。1.3 关于本次设计本次设计旨在利用LabVIEW开发工具,实现拼图游戏设计和仿真。要求最终实现模拟一个拼图游戏的过程,其一次正常游戏过程为:初始化游戏改变小图片位置评估小图片位置,当小图片处于正确的位置时输出提示语对话框。2、拼图简介2.1 拼图游戏的简介 拼图游戏是对一种益智类游戏的通称,是通过对乱序的小图片不断地位置变换来完成图片拼接的一种游戏。它是广受欢迎的一种智力游戏,它的变化多端,难度不一,让人百玩不厌。每一个拼图的单片都有确定的位置,放对了就慢慢丰富起来,放错了就无法完整。2.2 labview实现拼图游戏的基本思路 本次设计是基于LabVIEW来对拼图游戏进行模拟仿真,利用LabVIEW中的常用编程控件,来完成对拼图游戏的基础功能的实现。然后通过等级差别来实现难度的跨越,最后利用调用子程序来实现游戏的完整,实现本次拼图游戏的设计。因此本程序能实现拼图游戏的基础功能,并且增加不同难度等级以丰富游戏。2.3 labview实现拼图游戏的框架 本次基于LabVIEW的拼图游戏的设计的主要功能就是,在拼图游戏启动后,显示出游戏的主界面,如图所示,也就是我们拼图游戏最后要完成的效果界面。在界面框中,放置了将要实现的功能。 在主界面中,设置了初级、中级、高级三个拼图游戏的等级,除了这三个等级外还有帮助选项。操作者可以根据个人需求选择不同的操作,这四个功能构成了本次设计的主要功能,并分别采用布尔按钮来操作。 初级。点击该按钮后,程序将立即显示初级游戏界面,该界面是由九副错乱的图片排列成的三乘三游戏界面,用户可以通过操作鼠标点击图片来不断移动图片,从而完成游戏。 中级。点击该按钮后,程序将立即显示初级游戏界面,该界面是由十六副错乱的图片排列成的四乘四游戏界面,用户可以通过操作鼠标点击图片来不断移动图片至空白图片处,从而完成游戏。 高级。点击该按钮后,程序将立即显示初级游戏界面,该界面是由二十五副错乱的图片排列成的五乘五戏界面,用户可以通过操作鼠标点击图片来不断移动图片,从而完成游戏。 帮助。点击该按钮后,程序将立即显示帮助界面,该界面是由图形控件组成,并配以对拼图游戏玩法的文字简介,操作者可以根据简介清楚掌握游戏玩法。点击退出跳转到游戏主界面。最后,经过编程设计出初级、中级、高级和帮助四个程序VI,将它们利用子VI技术组合在一起,并对其界面排版进行设计。2.4 拼图游戏的设计原理本次拼图游戏设计主要是基于LabVIEW 2013虚拟平台,使用图形语言编程。设计原理是:拼图游戏主界面在初始化后,程序要对按下的按钮进行检测和分析,判断出按下的按钮;然后显示为相应功能的界面,等待操作者选择需要执行的动作,以此来实现在每个功能中不同的操作。如选择初级,则游戏进入初级界面,在接受初始化信号之后,通过获取图片VI调用文件中的图片,再利用随机数组VI将九块小图片的位置打乱,区别于正确的位置。初始化之后通过不断地位置变化来寻找正确的位置,while循环语句完成的就是这一功能,每挪动一次位置之后,while循环语句确定该小图片是否在正确的位置上,直到所有九块图片都处于正确的位置时,进入条件结构的工作。所有的图片都处于正确的位置之后输出祝贺的提示语,并弹出对话框,选择再来一局或直接退出。选择中级、高级也会相应显示出对应操作。选择帮助,则游戏进入帮助VI,通过图形控件显示出游戏说明,帮助初玩者快速了解游戏。拼图游戏设计主要分为初级模块,中级模块,高级模块,帮助模块。其中初级模块、中级模块和高级模块这三个模块都由获取图片,随机数组,拼图三个基本模块构成。帮助模块,由图形控件组成。 最后,经过子VI的设计和程序调用,初级模块、中级模块、高级模块和帮助模块,将他们组合在一起。 本设计主要包括四个部分:获取图片,随机数组,拼图和帮助模块,下面就分别着重介绍四个模块的功能。2.5 拼图游戏设计的主要模块2.4.1 获取图片模块 获取图片模块的主要功能是从文件中读取出图片。点击运行后,根据名称或相对路径,调用读取图片子VI,根据JPEG文件路径,调用出图片,再调用绘制平化像素图子VI,修改图像数据,使得符合显示要求。2.4.2 随机数组模块 随机数组模块的主要功能是把按正确顺序排列的图片数组打乱,以区别于正常顺序的图片数组,使得拼图游戏得以初始化。该模块由两个同等大小的数组组成,一个显示图片的输入,一个显示随机排列后图片的输出。 点击程序运行按钮,程序即可开始运行,先是图片数组的输入,再经过对数组维数的重新排列,使得数组变为一维数组,并且查找出空白图片的位置,再根据数组维数,经过运算得出空白数组的坐标,以此来作为图片元素移动的标准,即只有位置在空白图片上下左右的图片元素才可以移动位置。随后通过while循环和条件结构,来确定如何具体的实现图片的随进排列。最后经过数组替换,使得随机排列后的数组显示在界面上,至此随机数组排列的功能得以实现。2.4.3 拼图模块 拼图模块的主要功能是实现操作者对拼图游戏的操作性,点击程序运行按钮后,前面板会出现拼图界面,按初级中级高级的不同,界面显示也不同。初级显示的是一个三维数组组成的三乘三的拼图界面,中级显示的是一个由四维数组组成的四乘四的拼图界面,高级显示的一个由五维数组组成的五乘五的拼图界面。以初级为例,程序运行后,显示出一个由三维数组组成的界面,其中三维数组里的元素由八副随机打乱的图片素材和一张空白图片素材组成。操作者点击空白图片上下左右的图片素材,即可移动图片至空白图片处,可连续操作,直至拼图游戏完成。在三维素组界面左下方有个停止按钮,如果拼图游戏尚未拼成功,点击停止即返回游戏主页界面;如果拼图游戏完成,则显示出祝贺语和确定选项,点击即返回游戏主页界面。中级和高级运行和初级基本相似。至此拼图模块功能实现。2.4.4 帮助模块 帮助模块的主要功能是帮助操作者清楚掌握游戏玩法。这个模块主要应用的是图形控件来展示。点击程序运行按钮后,程序将调用图形控件至前面板,以此来显示出帮助内容。图形控件是LabVIEW为方便用户操作而提供的一种自定义控件,用户可以随心所欲地画出自己想要的图形,通过自定义窗口就可以随意导入图片并且按需求调整图片大小和设置控件外观。在这个模块,利用图形控件的自定义性,导入预先用图片处理器处理过的配有帮助字符的图片,再调整大小和外观,使得用户可以在运行程序后看到帮助。(132)3、 拼图游戏的具体实现3.1 获取图片功能的具体实现 图片获取功能是整个拼图游戏的基础模块,它主要实现对拼图游戏的图片进行自动从文件导入的功能。 3.2 随机数组的具体实现 随机数组是整个拼图游戏的核心基础模块,它主要实现对拼图游戏的初始化工作。原始数组是按照图片的正确顺序依次排列,为了游戏的更好进行随机数组就需要把原始数组打乱排列成为新的数组,以增加游戏难度。随机数组的实现主要是一个while结构、一个for结构和一个条件结构组合实现。因为初级中级高级随机数组模块的实现过程基本类似,所以统一以初级为例进行说明;稍有差异之处,会在最后另加说明。初级模块随机数组的实现主要分为以下过程: 1、原始按照图片正确顺序排列的数组作为数组输入进入到while循环中,如下图所示,利用重排数组维数和搜索一维数组控件来实现对空白图片位置坐标的定位,即空白图片在图片数组中的行列数得以确定,随后图片的随机排列将以空白图片为核心展开。While循环在本模块的作用是多次重复打乱图片排放顺序直至循环结束。 2、确定了空白图片的行列值后,利用簇合并行列值为一个整体值,即以坐标的形式展示。空白数组的坐标与(1,0)和(0,1)分别进行相加相减运算,这是确定将要打乱的图片是空白图片元素上下左右位置的图片。运算的结果分别作为独立的值进入for循环中,设定for循环的次数为三次。再用随机数和常数的乘法运算得到一个长整型的数值,这个数值和数组维数3进行相除运算,再和循环次数做简单的加法运算,最后和维数3相除,得到的余数作为进入条件结构的判断条件。在该部分进行的数值运算都是基于产生随机的数字并保证次数的延续性和数值的不重复性。 3、 根据余数的不同,进入条件结构中的运算也不同。因为被除数是3,所以得到的余数只有三种可能0,1,2,因此设定条件结构的分支为三条。如果余数是0,则进入第一条分支,先判断上一步骤中空白图片和(1,0)(0,1)运算的结果是否在(0,0)和(3,3)内,即判断是否超出数组的范围。若没有超出则强制转换空白图片坐标减去(1,0)处即空白图片正上方的图片元素的行列坐标;同理余数是1时,制转换空白图片坐标加上(0,1)处即空白图片正右方的图片元素的行列坐标;余数是2时,制转换空白图片坐标减去(0,1)处即空白图片正左方的图片元素的行列坐标。这一过程主要完成要打乱的图片处于什么样的位置的功能。4、找到要打乱的图片所在的位置后,利用索引数组找到元素所在位置的图片,利用替换数组进行行列的替换从而得以实现图片的位置打乱功能。重复此操作直至跳出while循环,将打乱图片位置后的数组输出即完成对数组的随机排列。以上就是初级拼图游戏的随机数组模块的功能实现。中级和高级只是数组维数和条件分支处有细微差异。如图所示,其余实现原理以及过程均相同。3.3 拼图的具体实现拼图模块是整个游戏的核心模块,它主要实现的是操作者对整个游戏的操控。因为初级中级高级拼图模块的实现过程基本类似,所以统一以初级为例进行说明;稍有差异之处,会在最后另加说明。初级拼图面板界面如图所示,它由三维数组组成,八福随机排列的图片和一副空白图片作为数组元素添加在数组里面。点击空白图片上下左右的图片元素即可实现图片的移动。具体实现分为以下过程。1、原始数组创建以及图片元素显示 要实现图片元素的显示,需要调用获取图片子VI。根据图片路径结合获取图片子 VI实现对文件中八副图片的调用,并把这八副图片和一副空白图片作为数组元素创建出一个数组,并且确定数组所在的坐标为(0,0)。随后用重排数组控件调整数组为三维数组,并把该数组设定为原始数组。再调用初级随机数组子VI,并把经过随机排列后的原始数组设定为数组。2、 拼图操作 实现拼图操作的主要程序是一个while循环、一个事件结构和一个条件结构。如图所示 (1)while循环实现的是对拼图操作的一个控制,程序正常运行则进入事件结构,程序需要停止就终止程序运行。 (2)事件结构显示的是对不同的操作程序的运行情况。主要分为三个事件:对数组元素的鼠标操作、超时和游戏停止。 A、 对数组元素的鼠标操作,程序如图所示 把鼠标按下位置的坐标创建为属性节点,它和坐标(4,4)的差值除以每个数组元素边框值(170,99),所得到的商和余数取长整型后的数值即为数组元素中鼠标按下操作所对应的图片在数组中的行列数,如(1,2)代表第一行第二列的图片元素。把经过随机排列的数组转换为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幕墙工程质量控制方案(3篇)
- 2025年地热能发电行业市场拓展与品牌建设报告
- 2025防疫人员试题及答案
- 新能源行业上市公司2025年研发创新与技术转化效率市场前景预测报告
- 2025年互联网广告精准投放算法在旅游摄影领域的用户口碑提升效果评估与优化方案报告
- 2025年电力法律法规试题及答案
- 新能源汽车电池循环利用2025年绿色物流碳减排技术创新
- 2025年《现代林学概论》试题库及答案
- 2025年防疫员网络考试题及答案
- 新能源汽车电池回收利用碳足迹评估与减排路径报告
- 仓库基础知识培训教材课件
- 曲臂式高空作业车专项施工方案
- 2025秋人教统编版二年级语文上册第一单元语文园地一【教案】
- SOP考试题及答案
- 高职院校实训室管理办法
- 旅行社安全应急救援预案
- 无痛人流患者护理查房
- DDI:制造业人才发展成功实践手册
- 电力施工安全管理办法
- 危险化学品生产许可证实施细则(一)(危险化学品无机产品部分)
- 德瑞斯D600变频器说明书
评论
0/150
提交评论