55界面编程技巧 5 - 使用绘图控件.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:4 大小:197KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

55界面编程技巧 5 - 使用绘图控件.doc

55界面编程技巧5-使用绘图控件.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

界面编程技巧5-使用绘图控件有时候需要画一个比较复杂图形或曲线,而LabVIEW没有提供相应的控件。可以借用LabVIEW已有的基本功能的控件,配上一些代码,实现一个具有特定功能的控件。常被用来做这种基本控件有XYGraph、3DPictureControl、Picture控件等。例如需要做一个绘制极坐标函数曲线的控件,就可以在XYGraph的基础上改造。一共一个转换用的VI,把点的极坐标转换成直角坐标系下的值,在XYGraph上绘制出来就可以了。需要某个支持某种特定三维绘图方式的控件,可以通过改造3DPictureControl得到。Picture控件是个更为基础的控件,很多具有特殊效果的界面元素都可以利用Picture控件制作。比如,需要制作带图标的菜单,或类似LabVIEW函数选板的菜单等。LabVIEW没有为它们提供现成的控件,就可以在Picture控件上自己把这些效果都画出来。我们前面介绍的棋盘棋子界面也可以使用Picture控件来制作。下面介绍一下实现这个界面的具体过程。第一步,创建一个空白的Picture控件,针对Picture控件的常用操作都在PictureFunctions函数选板中。与前面介绍的方法不同,使用Picture控件制作棋盘棋子的过程,不是在VI编辑状态下进行的,而是需要在程序运行时绘制。所以下面的界面设计工作都要通过编程来完成了。先介绍一下Picture控件的EraseFirst属性,它有3个值:0表示从不擦除,也就是说每次传一个数据给这个控件,比如一个圆环图案,Picture上显示的并非只有这个圆环,而是把圆环叠加在原本的内容之上。如果我想画一个有三个矩形组成的图案,可以分三次画,每一次传递一个矩形图案给Picture控件;2表示每次都擦除,每次传递一个图案给Picture控件,它都会将原来的图案擦掉,仅保留这一次的图形。擦除图案后Picture控件会显示默认的白色。所以,使用这种方式,用户在切换图案时会看到Picture闪烁一下。若非必要,尽量不要使用这种方式;1表示程序第一次运行时把Picture上的内容清除,等于自动帮你做了初始化工作,我们这里也使用这种方式。就是说,棋盘布局发生变化时,进更新发生了变动的位置。不要重绘整幅图。棋盘在棋子下层,所以要先画棋盘。画棋盘可以使用LabVIEW提供的划线函数,一条线一条线画出来。因为我们之前已经制作了棋盘的图片,所以可以直接把这张图片显示出来。代码如下:下面再画上棋盘初始时的四个棋子。画棋子的方法与棋盘相同,可以使用画圆函数,已可以使用已经制作好的图片:到目前为止,界面设计的几种方法就已经介绍好了。如果能够把这个黑白棋的相关界面和操作(比如放置棋子,反转棋子等)提取出来,合成一个组件,公布出来,其他有类似需求的人就可以直接利用这个组件,不再需要自己重新设计了。然而,在LabVIEW8之前是无法实现这一功能呢,因为控制棋子行为的代码分散在程序的各处,而棋盘棋子也是主VI的一部分,很难将它们提取出来组成独立模块。LabVIEW8中出现的XControl可以把控件的界面及行为封装在一起,成为一个既有界面,又有运行代码一个组件。下面我就会重启一个先话题,讨论如何把这个黑白棋做成一个可以独立发布的组件。