基于Unity3D模型表面曲线测量方法、系统及介质与流程

文档序号:21681000发布日期:2020-07-31 21:52阅读:951来源:国知局
基于Unity3D模型表面曲线测量方法、系统及介质与流程

本发明涉及视觉的三维测量技术领域,具体地,涉及一种基于unity3d模型表面曲线测量方法、系统及介质。



背景技术:

目前众多进行曲面测量的技术中,很多都是无法精确的进行曲面拟合,测量误差大。硬件测量难度大,精度低。

专利文献cn105783774a(申请号:201610222343.1)公开了一种船舶钢板曲面尺寸在线测量系统及其方法,一是采用全站仪自动测量与ccd近景摄影测量相结合的方法,同时进行关键点的三维精度测量。二是通过ccd近景摄影测量,进行曲面编码标志点和非编码标志点三维精度的分段测量;并通过对所述的曲面点三维精度的分段测量,进行曲面分段测量的曲面拟合,生成曲面板的三维模型,与设计的三维模型进行对比分析。这种分段测量的方法,其虽然能够实现曲面分段上的关键点的坐标精度检测分析,解决了无法实现曲面的拟合和检测,无在线检测功能的问题,但却不能保证测量到两点在曲线上的最短距离。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种基于unity3d模型表面曲线测量方法、系统及介质。

根据本发明提供的一种基于unity3d模型表面曲线测量方法,包括:

步骤m1:通过射线检测确定鼠标点在unity3d模型表面上的起点和终点的坐标;

步骤m2:通过起点和终点的坐标连接一条线段,将线段n等分,得到n+1个点;

步骤m3:通过线段上n+1个点生成射线发射点向unity3d模型表面投射射线,获得每条射线和unity3d模型表面的交点坐标,分别计算每条射线和unity3d模型表面的交点坐标两两临近点的距离;

步骤m4:根据计算得到的两两临近点的距离,计算unity3d模型表面曲线的长度;

步骤m5:将每个发射点绕着起点终点连成的方向顺时针旋转预设角度,重复预设次数执行步骤m3至步骤m4;

步骤m6:在所有测得的unity3d模型表面曲线长度中,取最小值,即unity3d模型表面起点和终点的曲线距离。

优选地,所述步骤m2包括:

步骤m2.1:将起点指向终点的向量设为向量x,将向量x均匀的分成n等分,得到n+1个点,设为xn1、xn2.......xnn+1;

步骤m2.2:获取垂直于向量x的向量n。

优选地,所述步骤m3包括:

步骤m3.2:以向量x上的n+1个点为出发点,以向量n为方向,预设值l为长度,得到pnk=xnk+|n|*l;

步骤m3.3:以pnk为出发点,向量n的反方向为方向,发出射线,和unity3d模型相交,获得点qnk;

步骤m3.4:计算qn1和qn2之间的距离l1、qn2和qn3之间的距离l2......qnn和qnn+1之间的距离ln。

优选地,所述步骤m4包括:

步骤m4.1:计算unity3d模型表面曲线长度length1=l1+l2+......+ln。

根据本发明提供的一种基于unity3d模型表面曲线测量系统,包括:

模块m1:通过射线检测确定鼠标点在unity3d模型表面上的起点和终点的坐标;

模块m2:通过起点和终点的坐标连接一条线段,将线段n等分,得到n+1个点;

模块m3:通过线段上n+1个点生成射线发射点向unity3d模型表面投射射线,获得每条射线和unity3d模型表面的交点坐标,分别计算每条射线和unity3d模型表面的交点坐标两两临近点的距离;

模块m4:根据计算得到的两两临近点的距离,计算unity3d模型表面曲线的长度;

模块m5:将每个发射点绕着起点终点连成的方向顺时针旋转预设角度,重复预设次数触发模块m3至模块m4执行;

模块m6:在所有测得的unity3d模型表面曲线长度中,取最小值,即unity3d模型表面起点和终点的曲线距离。

优选地,所述模块m2包括:

模块m2.1:将起点指向终点的向量设为向量x,将向量x均匀的分成n等分,得到n+1个点,设为xn1、xn2.......xnn+1;

模块m2.2:获取垂直于向量x的向量n。

优选地,所述模块m3包括:

模块m3.2:以向量x上的n+1个点为出发点,以向量n为方向,预设值l为长度,得到pnk=xnk+|n|*l;

模块m3.3:以pnk为出发点,向量n的反方向为方向,发出射线,和unity3d模型相交,获得点qnk;

模块m3.4:计算qn1和qn2之间的距离l1、qn2和qn3之间的距离l2......qnn和qnn+1之间的距离ln。

优选地,所述模块m4包括:

模块m4.1:计算unity3d模型表面曲线长度length1=l1+l2+......+ln。

根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述中任一项所述的方法的步骤。

与现有技术相比,本发明具有如下的有益效果:

1、通过采用射线检测技术确定射线与模型表面的交点,从而达成鼠标在面模型表面选点的功能。

2、通过采用n个射线检测相机确定n个模型表面上的点,然后将所有点收尾相连,从而实现生成曲线的目的。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为曲线测量的示意图

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

根据本发明提供的一种基于unity3d模型表面曲线测量方法,包括:如图1所示,

步骤m1:通过射线检测确定鼠标点在unity3d模型表面上的起点和终点的坐标;

步骤m2:通过起点和终点的坐标连接一条线段,将线段n等分,得到n+1个点,一般n取10;

具体地,所述步骤m2包括:

步骤m2.1:将起点指向终点的向量设为向量x,将向量x均匀的分成n等分,得到n+1个点,设为xn1、xn2.......xnn+1;

步骤m2.2:获取垂直于向量x的向量n。

步骤m3:通过线段上n+1个点生成射线发射点向unity3d模型表面投射射线,获得每条射线和unity3d模型表面的交点坐标,分别计算每条射线和unity3d模型表面的交点坐标两两临近点的距离;

具体地,所述步骤m3包括:

步骤m3.2:以向量x上的n+1个点为出发点,以向量n为方向,预设值l为长度,得到pnk=xnk+|n|*l;

步骤m3.3:以pnk为出发点,向量n的反方向为方向,发出射线,和unity3d模型相交,获得点qnk;

步骤m3.4:计算qn1和qn2之间的距离l1、qn2和qn3之间的距离l2......qnn和qnn+1之间的距离ln。

步骤m4:根据计算得到的两两临近点的距离,计算unity3d模型表面曲线的长度;

具体地,所述步骤m4包括:

步骤m4.1:计算unity3d模型表面曲线长度length1=l1+l2+......+ln。

步骤m5:将每个发射点绕着起点终点连成的方向顺时针旋转5度,重复预设次数执行步骤m3至步骤m4;

步骤m6:在所有测得的unity3d模型表面曲线长度中,取最小值,即unity3d模型表面起点和终点的曲线距离。

根据本发明提供的一种基于unity3d模型表面曲线测量系统,包括:

模块m1:通过射线检测确定鼠标点在unity3d模型表面上的起点和终点的坐标;

模块m2:通过起点和终点的坐标连接一条线段,将线段n等分,得到n+1个点,一般n取10;

具体地,所述模块m2包括:

模块m2.1:将起点指向终点的向量设为向量x,将向量x均匀的分成n等分,得到n+1个点,设为xn1、xn2.......xnn+1;

模块m2.2:获取垂直于向量x的向量n。

模块m3:通过线段上n+1个点生成射线发射点向unity3d模型表面投射射线,获得每条射线和unity3d模型表面的交点坐标,分别计算每条射线和unity3d模型表面的交点坐标两两临近点的距离;

具体地,所述模块m3包括:

模块m3.2:以向量x上的n+1个点为出发点,以向量n为方向,预设值l为长度,得到pnk=xnk+|n|*l;

模块m3.3:以pnk为出发点,向量n的反方向为方向,发出射线,和unity3d模型相交,获得点qnk;

模块m3.4:计算qn1和qn2之间的距离l1、qn2和qn3之间的距离l2......qnn和qnn+1之间的距离ln。

模块m4:根据计算得到的两两临近点的距离,计算unity3d模型表面曲线的长度;

具体地,所述模块m4包括:

模块m4.1:计算unity3d模型表面曲线长度length1=l1+l2+......+ln。

模块m5:将每个发射点绕着起点终点连成的方向顺时针旋转5度,重复预设次数触发模块m3至模块m4执行;

模块m6:在所有测得的unity3d模型表面曲线长度中,取最小值,即unity3d模型表面起点和终点的曲线距离。

根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述中任一项所述的方法的步骤。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1