LabVIEW Vision求两点之间的距离
LabVIEW VISION视觉开发包中,有一个求点距离的函数:
IMAQ Point Distances点距离函数
该函数计算的是点数组相邻两个点之间的距离,当然也可以只计算两个点之间的距离。不过,相对麻烦一点,需要把两个点创建成点数组后,再计算点距离,而且输出的结果也是数组的,如果只有两个点的距离,只是一个数据值的话,还得用索引数组获取第0个元素才可以,相对来讲是比较麻烦的:
NI VISION中自带的点距离计算示例
那么对于单纯计算两个点之间的距离,有什么方法来优化一下吗?这个当然也是可以,一种方法,就是利用上面的这个示例,将距离索引数组元素,然后做成一个子VI调用:
调用NI VISION中的点距离函数计算两点之间的距离
另外,我们也可以根据中学的数学知识,自己来写个简单的点距离函数。在数学中求两个点之间的距离的公式是,根据这个公式,我们可以简单的写一个求两点距离的函数:
利用距离公式求两点距离
这样做成子VI,就可以在程序中方便的调用,来求两点之间的距离了。从效率上来讲,应该会比NI的函数要高一点。因为NI的Points Distances内部肯定是加了一个For循环来循环计数的,即使执行一次For循环求两个点之间距离,也要执行一次For循环。