LabVIEW创建三维线曲面并绘制

     LabVIEW在ScenceMesh三维曲面绘制函数里面有线、点、面等不同的绘制参数可以设置,在三维环境中表达两点的距离通常用三维线来表达,DrawModl设置为Line Strip,绘制三维线的方法如下:

图片

       在有些应用中需要用户与三维控间里面的对象进行交互操作,比如用户用鼠标移动来识别三维控件中的对象,LabVIEW提供了两个函数:Pick Point 和 Pick Mode两个函数,pick Point 函数是检测鼠标是否旁撞到三维对象,通常用法是用Pick Point检测是否碰撞到三维对象,用Pick Mode返回检测到对象的引用。但LabVIEW存在BUG,至今还没有解决,该函数没法检测碰撞点与线,没法返回点与线的对象引用。识别三维控件中的三维线对象是再普通不过的应用,然并卵!

      解决方案:Pick Point 和 Pick Mode两个函数可以返回面、球等对象引用,利用这个特点,将线修改成三维面来绘制,即三维线管来代替三维线。如何构建三维线管曲面数据?

解决思路:曲面由三角面、矩形面及多边形面,适合程序自动生成的规则曲面比较适合矩形曲面Quads,

该类型曲面由U项点和V项点组成,用三维线的坐标点设置U项,以每个坐标点为圆心绘制小圆代表V项,该圆的半径大小为线管的半径大小,所有小圆顶点数设置为相同,即V项Size相同。

图片

算法思路:

1)首先计算三维线每个顶点的法向,并一致化朝外。

2)代表线宽的每个小圆平行于该法向,保证产生的线管数据在每个顶点位置的线宽一致。

2.1)将每条三维线首先投影到xy平面,

2.2)用移动方法计算三维线每个顶点的法向,并一致朝外,将代表线宽的小圆,与产生的旋转矩阵相乘,旋转到与该顶点法向平行,并移动到该顶点处。

图片

3) 创建三维线管网格数据

图片

三维绘制后的效果如下:

图片

声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/221849.html

(0)
联系我们
联系我们
分享本页
返回顶部