LabVIEW论坛
直播中

drui1123

7年用户 49经验值
擅长:MEMS/传感技术
私信 关注
[文章]

Labview实现自定义四维云图(三维曲面图像)可视化显示

1 引言

Labview自带有三维曲面图形绘制函数,并可在曲面表面完成云图可视化显示,但是其颜色范围由矩阵Z的最大、最小值自动配置,无法进行用户自定义灵活配置,因此本文在Labview自带的三维曲面图形绘制函数基础上,对其中的数据与程序进行修改,实现了曲面云图颜色效果的自定义配置,提升了Labview的可视化应用性。

2 配置方法

2.1 配置对象

本文以Labview自带的“绘图帮助(向量)”vi作为对象,详细说明具体配置方法,并基于“三维曲面图形”范例对配置前后的效果进行对比显示。

2.2 配置步骤

2.2.1 基本配置

在本地任意位置新建一个Labview项目,并在项目中新建并保存一个vi,将Labview自带的“三维曲面图形”范例内容复制过来,如下图。
image.png

2.2.2 修改数据

在项目中找到“3D Surface Datatype.lvclass”类中的“3D Surface Datatype.ctl”数据,在其中加入“C-value”矩阵与“C range”簇。
image.png
在项目中找到“3D Plot.lvclass”类中的“Range Cluster.ctl”数据,在其中加入“C range”簇。
image.png

2.2.3 修改程序

在项目中找到“3D Surface
Datatype.lvclass”类中的“Plot Help (Vector).vi”程序,在其中加入“c matrix”矩阵(默认值为空数组)与“c range”簇(默认值为NaN数值簇)输入,并在子vi内完成捆绑操作,如下图。
image.png
在项目中找到“3D Surface
Datatype.lvclass”类中的“Calculate Color Index
Array.vi”程序,在其中加入“c
matrix”矩阵(默认值为空数组)与“c range”簇(默认值为NaN数值簇)输入,并在子vi内完成下图所示内容修改,修改后的效果为:优先采用新添加的“c matrix”与“c range”绘制曲面表面的云图,若未连接,则沿用Labview原先自带的方式进行绘制。
image.png
在项目中找到“3D Plot Datatype.lvclass”类中的“Get Max Range.vi”程序,完成下图所示内容修改,此处修改目的为避免新增C Range被重置为0。
image.png
在项目中找到“3D Plot
Datatype.lvclass”类中的“Graph Color Legend.vi”程序,完成下图a所示内容修改,此处修改目的为保证前端“三维曲面图形”窗口的颜色图例范围与设置的一致。前端“三维曲面图形”窗口各控件效果均由本vi控制,具体对应关系如下图b。
image.png
图a 修改“Graph Color Legend.vi”
image.png
图b “三维曲面图形”窗口各控件与“Graph Color Legend.vi”关系

一些说明

Labview中的“三维曲面图形”前端显示控件实质上是一个Xcontrol控件,其位于“Labview安装根目录\vi.lib\Math Plots\3D Math Plots\3D Surface\3D Surface XCtrl”目录下,打开后可通过修改其中的“Façade.vi”以美化前端默认显示效果,如下图。
image.png

实现效果

下图为几个不同曲面的实现效果,中间的曲面为Labview原始绘图效果,最下面的曲面在原始基础上将颜色矩阵取负,最上面的曲面则原始基础上将颜色范围的上限设为2。
image.png

更多回帖

发帖
×
20
完善资料,
赚取积分