第四章图形显示

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

电子技术论坛1第四章图形显示4.1概述图形显示对于虚拟仪器面板设计是一个重要的内容。LabVIEW为此提供了丰富的功能。在前面几章我们已经接触了这个问题,现在较系统地介绍一下。我们不从图形的实现方法上去讨论问题,那是计算机图形学的课题。但我们需要从用户的可能的需求角度探求一下,如果你需要做虚拟仪器方面的开发,那么可能遇到些什么图形问题。LabVIEW在这方面所做的工作是非常值得借鉴的。在LabVIEW的图形显示功能中Graph和Chart是两个基本的概念。一般说来Chart是将数据源(例如采集得到的数据)在某一坐标系中,实时、逐点地显示出来,它可以反映被测物理量的变化趋势,例如显示一个实时变化的波形或曲线,传统的模拟示波器、波形记录仪就是这样。而Graph则是对已采集数据进行事后处理的结果。它先将被采集数据存放在一个数组之中,然后根据需要组织成所需的图形显示出来。它的缺点是没有实时显示,但是它的表现形式要丰富得多。例如采集了一个波形后,经处理可以显示出其频谱图。现在,数字示波器也可以具备类似Graph的显示功能。LabVIEW的Graph子模板中有许多可供选用的控件,其中常用的见下表:ChartGraphWaveform(波形)**XY*Intensity(强度图)**Digital(数字图)*3DSurface(三维曲面)*3DParametric(三维参变量)*3DCurve(三维曲线)*由表中可以看出,Chart方式尽管能实时、直接地显示结果,但其表现形式有限,而Graph方式表现形式要远为丰富,但这是以牺牲实时为代价的。在LabVIEW6i版本中还包含有极坐标等其他图形(Plot),本章不讨论。4.2Graph控件各种图形都提供了相应的控件,以Graph为例介绍。图4-1所示为它的控件。所有这些控件都包含在图形快速菜单的VisibleItems选项下。曲线图例可用来设置曲线的各种属性,包括线型(实线、虚线、点划线等)、线粗细、颜色以及数据点的形状等。图形模板可用来对曲线进行操作,包括移动、对感兴趣的区域放大和缩小等。光标图例可用来设置光标、移动光标,帮助你用光标直接从曲线上读取感兴趣的数据。刻度图例用来设置坐标刻度的数据格式、类型(普通坐标或对数坐标),坐标轴名称以及刻度栅格的颜色等。电子技术论坛2图4-1Graph的图形控件4.3Chart的独有控件Chart的数据并没有事先存在一个数组中,它是实时显示的,为了能够看到先前的数据,Chart控件内部含有一个显示缓冲器,其中保留了一些历史数据。这个缓冲器按照先进先出的原则管理,其最大容量是1024个数据点。滚动条(Scrollbar)它直接对应于显示缓冲器,通过它可以前后观察缓冲器内任何位置的数据。数据显示(DigitalDisplay)选中它,可以在图形右上角出现一个数字显示器,这样可以在画出曲线的同时显示当前最新的一个数据值。刷新模式(UpdateMode)Chart提供了三种画面的刷新模式,分别是StripChartMode(条壮图):它与纸带式图表记录仪类似。曲线从左到右连续绘制,当新的数据点到达右部边界时,先前的数据点逐次左移。ScopeChartMode(示波器模式):它与示波器类似。曲线从左到右连续绘制,当新的数据点到达右部边界时,清屏刷新,从左边开始新的绘制。它的速度较快。SweepChartMode(扫描模式):与示波器模式的不同在于当新的数据点到达右部边界时,不清屏,而是在最左边出现一条垂直扫描线,以它为分界线,将原有曲线逐点向右推,同时在左边画出新的数据点。如此循环下去。曲线图例刻度图例(ScaleLegend)图形模板(GraphPalette)光标图例(CursorLegend)标签(Label)说明(Caption)电子技术论坛3堆叠式图区(StackPlots)在相同的纵坐标下,由于各种测量信号的差异,将几条曲线显示在同一个图区有困难时,可以组织出一种纵坐标相同,而有各自横坐标的堆叠式图区。打开\LabVIEW\Examples\Graphs\chart.lib目录的Charts.vi,那里提供了有关Chart的各种形态的例子,以及堆叠式图区的例子练习4-1Chart和Graph的比较目的:创建一个VI,用Chart和Graph分别显示40个随机数产生的曲线,比较程序的差别。前面板及流程图如下图4-2Chart和Graph的比较显示的运行结果是一样的。但实现方法和过程不同。在流程图中可以看出,Chart产生在循环内,每得到一个数据点,就立刻显示一个。而Graph在循环之外,40个数都产生之后,跳出循环,然后一次显示出整个数据曲线。从运行过程可以清楚地看到这一点。值得注意的还有For循环执行40次,产生的40个数据存储在一个数组中,这个数组创建于For循环的边界上(使用自动索引功能)。在For循环结束之后,该数组就将被传送到外面的Graph。仔细看流程图,穿过循环边界的连线在内、外两侧粗细不同,内侧表示浮点数,外侧表示数组。练习4-1结束4.4XY图形控件(XYGraph)波形图(WaveformGraph)有一个特征,其X是测量点序号、时间间隔等,Y是测量数据值。但是它并不适合描述一般的Y值随X值变化曲线。适合于这种情况的控件是XYGraph。我们通过一个构成利萨育图形的例子来看一下它的使用。我们知道如果控制XY方向的两个数组分别按正弦规律变化(假设其幅值、频率都相同),如果它们的相位相同,则利萨育图形是一条45度的斜线,当它们之间相位差90度时为圆,其他相位差是椭圆。电子技术论坛4练习4-2利用XYGraph构成利萨育图形。图4-3利用XYGraph构成利萨育图形面板和框图如图4-3所示。面板上除了一个XYGraph外,还有一个相位差输入控件。在框图中使用了两个SineWaveform.vi,第一个所有输入参数(包括频率、幅值、相位等)都使用缺省值,所以其初始相位为0。第二个将其初始相位作为一个控件引到面板上。它们的输出是包括t0、dt和Y值的簇,但是对于XYGraph只需要其中的Y数组,因此使用波形函数中的GetWaveformComponents函数分别提取出各自的Y数组,然后再将他们捆绑在一起,连接到XYGraph就可以了。当相位置为45度时,运行程序,得到如图所示的椭圆。练习4-2结束4.5强度图形控件(IntensityGraph)强度图形控件提供了一种在二维平面上表现三维数据的方法。例如可以用屏幕色彩的亮度来反映来反映一个二维数组元素值的大小。图4-3就是这样的一个例子。注意图中的x、y轴刻度对应的是数组行、列的序号。图4-4用强度图形表现一个二维数组及其元素值的大小4.6数字波形图控件(DigitalWaveformGraph)电子技术论坛5该控件的例子见图4-5。面板上有一个输入控制,共输入了7个十进制数,还有一个二进制显示对象,显示了这些十进制数对应的二进制数,最右边是一个DigitalWaveformGraph。注意这个图中数据应当从纵方向读出,在横坐标上的刻度是数据的序号(0到6),其中最后一个数的序号是6,纵坐标从下向上读是11111111,第一个数的序号是0,其值从上向下读是00000001,而第二个数(序号1)是00000010。图4-5数字波形图控件的例图该程序的框图中值得注意的问题有以下几点:十进制数可以直接送给DigitalWaveformGraph,不必事先转化为二进制数。在送给DigitalWaveformGraph之前,需要经过一个捆绑(bundle函数)。捆绑的顺序是x0、deltx、输入数据,最后是NumberofPorts。这里的NumberofPorts将反映二进制的位数或字长,为1时是8位,为2时变为16位,余类推。4.73D图形显示控件(3DGraph)

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功