![LabVIEW程序设计基础与应用](https://wfqqreader-1252317822.image.myqcloud.com/cover/749/41309749/b_41309749.jpg)
4.6 三维图形
在实际工程应用中,三维图形是一种最直观的数据显示方式,它可以很清楚的描绘出空间轨迹,给出X、Y、Z三个方向的依赖关系。LabVIEW 2015提供了许多三维图形控件,如图4-29所示。
![](https://epubservercos.yuewen.com/8C5AFF/21511155408173406/epubprivate/OEBPS/Images/95_01.jpg?sign=1739157543-t2zkhzxTXxDS2L4Ewj7WxDyemHPHATrJ-0-e9152fa6e872ded4ccd012c5064d841d)
图4-29 三维图形控件
下面对一些常用的三维图形控件的用法进行简单介绍。
4.6.1 三维曲面图形
三维曲面图形用来描绘一些简单的曲面,LabVIEW 2015提供的曲面图形控件可以分为两种类型:曲面.vi和三维曲面图形.vi,曲面和三维曲面图形控件的X、Y轴输入的是一维数组,Z轴输入的是矩阵,如图4-30所示。
![](https://epubservercos.yuewen.com/8C5AFF/21511155408173406/epubprivate/OEBPS/Images/95_02.jpg?sign=1739157543-EWXPAw3NJ7gd5hbiCeC6sICtYPM1roAG-0-1b0a3bd795ac3632ae8ea8a5a3851d23)
图4-30 曲面和三维曲面图形控件数据输入/输出接口
a)曲面.vi数据输入接口 b)三维曲面图形.vi数据输入接口
【例4-11】 用曲面和三维曲面控件绘制正弦曲面。
它们在显示方式上没有太大的差别,都可以将鼠标放置到图像显示区后,将图像在X、Y、X方向上任意旋转。两者最大的区别在于,“曲面”控件可以方便地显示三维图形在某个平面上的投影,例如,对于如图4-31所示的图形,单击即可显示图形在XY平面上的投影,对于在其他平面上的操作与之类似,显示结果如图4-32所示。
![](https://epubservercos.yuewen.com/8C5AFF/21511155408173406/epubprivate/OEBPS/Images/96_02.jpg?sign=1739157543-P9gadlkQIKJKKkuf9g7XFPOYEzX1fXdr-0-91ea48251bfc4e7b4b1e732441967f2d)
图4-31 曲面与三维曲面图形
![](https://epubservercos.yuewen.com/8C5AFF/21511155408173406/epubprivate/OEBPS/Images/96_03.jpg?sign=1739157543-QGEryQiQpkYJV5tRFSpI4VdxaT06xtsf-0-6832700a6753b83b745584939e1b54c0)
图4-32 三维曲面在三个坐标轴平面上的投影
a)XY平面 b)XZ平面 c)YZ平面
4.6.2 三维参数图形
三维参数图形可以用来绘制一些更复杂的空间图形,它的三个轴输入的都是二维数组,如图4-33所示。
![](https://epubservercos.yuewen.com/8C5AFF/21511155408173406/epubprivate/OEBPS/Images/97_01.jpg?sign=1739157543-052gbArzk0puZ4jmTV1SoDTE4qKo4J4S-0-7247ca86a97fa3177c712a3a64fe63c7)
图4-33 三维参数图形.vi输入/输出端口
【例4-12】 用三维参数图模拟水面波纹。
水面波纹的算法用z=sin(sqrt(x2+y2))/sqrt(x2+y2)实现,用户可以改变不同的参数来观察波形的变化。创建程序的步骤如下。
1)用两个For循环嵌套,生成一个二维数组,在循环次数输入端上右击,选择“创建输入控件”。
2)从“函数→编程→数值”中选择“乘”运算符放置在内层For循环中,一个输入端与For循环的i连接,在另一端上右击,选择“创建输入控件”,修改标签为“x”,再选择一个“减”运算符,“被减数”端与“乘”输出相连,在“减数”端创建一个输入控件“y”。
3)将二维数组连接到“三维参数图形.vi”的x矩阵输入端,从“函数→编程→数组”中选择“二维数组转置.vi”,将二维数组转置后连接到“三维参数图形.vi”的y矩阵输入端。
4)再创建两个嵌套For循环,选择“乘”运算符放置在内层For循环中,将其两输入端与原数组连接,用同样的方法再放置一个“乘”运算符,两输入端与转置后的数组连接,再将这两个数相加再开方,得到(x2+y2)1/2。
5)从“函数→数学→初等与特殊函数→三角函数”中选择“sinc.vi”,输入端与3)产生的数据相连,输出连接到“三维参数图形.vi”的z矩阵输入端。
6)从“函数→编程→结构”中选择“While循环.vi”,将程序框图上的所有对象放置到While循环中,设置每次循环的间隔为100ms。
运行程序,显示结果和程序框图如图4-34所示。
![](https://epubservercos.yuewen.com/8C5AFF/21511155408173406/epubprivate/OEBPS/Images/97_02.jpg?sign=1739157543-XMbfNpIvXnOyym2AWNOgeRaUjS5KgXvl-0-87963b973b453076be3bbdc14a4d23ed)
图4-34 三维参数图形模拟水面波纹
![](https://epubservercos.yuewen.com/8C5AFF/21511155408173406/epubprivate/OEBPS/Images/98_01.jpg?sign=1739157543-sEHyBygWvKcThp5gubx7OHtZrgLoluey-0-25d979a010fa08b2b983d9a2879345d3)
图4-34 三维参数图形模拟水面波纹(续)
4.6.3 三维曲线图形
三维曲线图形控件用来绘制空间曲线,它的3个输入端都是一维数组,如图4-35所示。
![](https://epubservercos.yuewen.com/8C5AFF/21511155408173406/epubprivate/OEBPS/Images/98_02.jpg?sign=1739157543-xnzOXiUKaWXhvbDVu2hWdDFk5OVBIAjY-0-ba5f5d1890bffab00b8aa96bbe40fd7a)
图4-35 三维线条图形.vi输入/输出端口
【例4-13】 用三维曲线控件绘制螺旋曲线。
创建程序的步骤如下。
1)创建一个For循环,循环次数设置为输入控件,选择“正弦.vi”和“余弦.vi”,放置到循环体中,将For循环的i转换为弧度后连接到“正弦.vi”和“余弦.vi”的输入端。
2)将正弦值作为“三维曲线图形.vi”的x向量,余弦值作为y向量,弧度值作为z向量。
3)选择While循环将所有对象框到其中,设置循环间隔为100ms。
显示效果和程序框图如图4-36所示,用户可以通过改变绘图的数据点数来观察图形变化。
![](https://epubservercos.yuewen.com/8C5AFF/21511155408173406/epubprivate/OEBPS/Images/98_03.jpg?sign=1739157543-R7HWdecPvVpa54Iqm4XSzQvz57179jo9-0-e3f401929a364b2fddcb7201458c481b)
图4-36 三维曲线绘制螺旋线
三维图形子选板中还提供了诸如“散点图”“饼图”“等高线图”等许多控件,这些控件的使用方法与例中所讲的控件类似,此处不再赘述。