CN119722854B - 基于混合现实的空间曲线绘制及几何体生成与交互方法 - Google Patents
基于混合现实的空间曲线绘制及几何体生成与交互方法 Download PDFInfo
- Publication number
- CN119722854B CN119722854B CN202510240639.5A CN202510240639A CN119722854B CN 119722854 B CN119722854 B CN 119722854B CN 202510240639 A CN202510240639 A CN 202510240639A CN 119722854 B CN119722854 B CN 119722854B
- Authority
- CN
- China
- Prior art keywords
- geometric
- fitting
- curve
- geometry
- geometric body
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明公开了基于混合现实的空间曲线绘制及几何体生成与交互方法,属于沉浸式人机交互技术领域,包括S1、通过空间曲线绘制模块,检测用户的手部姿态,完成空间曲线的绘制;S2、在完成空间曲线的绘制后,通过几何体拟合模块完成几何体的拟合,包括几何体的位置、姿态、大小及相关几何参数;S3、在完成几何体拟合后,通过几何体生成和交互模块实现几何体的渲染、交互及参数调整;本发明提供的基于混合现实的空间曲线绘制及几何体生成与交互方法,用户能够利用手势控制在虚拟空间中进行绘图和生成几何体,并对生成的几何体的几何参数进行在线实时调整,显著提升了交互体验和操作精度。
Description
技术领域
本发明涉及沉浸式人机交互技术领域,尤其是涉及基于混合现实的空间曲线绘制及几何体生成与交互方法。
背景技术
混合现实技术作为虚拟现实与增强现实的融合体,能够将虚拟对象与真实环境无缝结合,允许用户在真实世界中与虚拟元素进行实时交互,进而实现更加真实和富有互动性的体验。随着混合现实在各个领域的应用逐渐增加,对于在沉浸式虚拟空间中进行几何体生成与交互方面的需求愈发强烈。
几何体是构成物体的基本单元,在各类应用场景中发挥着关键作用。在混合现实空间中,特定的几何体可用于标记物体、创建虚拟边界、实现空间规划与布局设计,以及进行三维物体的原型设计等多种用途。然而,传统的几何体生成方法主要依赖预定义的三维模型或几何图元,往往需要用户在后台进行繁琐的操作。因此,这种方法在动态和高度交互的环境中存在明显局限性,不仅操作效率低下,也难以满足实时性和灵活性的需求。例如,在混合现实环境中,用户需要根据实时交互和动作生成相应的几何体,并对其进行位置、姿态和大小的调整。这要求系统不仅能够整合交互界面并快速响应用户输入,还需具备实时处理各类变化的能力。相比传统的预定义模型方法,基于空间曲线绘制的几何体生成方式能更自然、直观地模拟现实世界中的绘制与构建过程,从而显著提升用户体验和创作效率。
当前,混合现实技术主要局限于虚拟物体的可视化展示,尚未实现虚拟物体的实时生成和动态调整。现有技术缺乏在混合现实空间中根据用户实时交互生成几何体的有效解决方案,无法满足即时创建和调整的实际需求,极大地限制了创作的灵活性和效率。这一技术空白制约了混合现实技术在更复杂、动态场景中的应用与发展。因此,亟需开发一种创新性的技术方案,使用户能够通过自然直观的手势操作,在混合现实环境中实现几何体的实时绘制、生成与交互,从而满足对高效灵活的创作工具的迫切需求。
发明内容
本发明的目的是提供基于混合现实的空间曲线绘制及几何体生成与交互方法,以解决上述背景技术中存在的问题。
为实现上述目的,本发明提供了基于混合现实的空间曲线绘制及几何体生成与交互方法,包括以下步骤:
S1、通过空间曲线绘制模块,检测用户的手部姿态,完成空间曲线的绘制;
S2、在完成空间曲线的绘制后,通过几何体拟合模块完成几何体的拟合,包括几何体的位置、姿态、大小及相关几何参数;
S3、在完成几何体拟合后,通过几何体生成和交互模块实现几何体的渲染、交互及参数调整。
优选的,步骤S1中的空间曲线绘制模块包括:
手指关节识别,通过混合现实眼镜捕捉用户的手部,实时识别用户手部各关节的位姿,包括手腕、掌心、指尖、指间关节、掌指关节及掌腕关节等;
定制功能菜单,通过手势识别进行呼出和关闭,当识别到用户的左手五指张开且掌心朝向眼睛时,呼出功能菜单;否则,自动关闭功能菜单,功能菜单包括绘制功能、擦除功能和锁定功能,且功能菜单用于辅助用户在各功能之间自由切换。
优选的,功能菜单通过手势控制实现其各种功能,具体为:
A、绘制功能:用户在功能菜单中点击绘制功能按钮,右手食指指尖出现一个虚拟绿色圆球,表示进入绘制状态,绿色圆球持续追踪右手食指的位置,且系统持续追踪右手食指与拇指指尖的位置,并计算两者之间的欧式距离,公式为:
;
其中,是右手拇指指尖坐标,是右手食指指尖坐标,通过判断欧式距离,若是,表示开始绘制曲线,系统将右手食指指尖的运动轨迹实时可视化为三维空间曲线,具体为:将当前右手食指指尖的位置作为新点添加到Unity3D的LineRenderer组件中,并持续追踪指尖的位置,当指尖位置与上一个点的距离大于设定阈值(5毫米)时,系统再次采集指尖位置作为新点添加到LineRenderer组件中;当两指张开时,系统结束当前曲线的绘制,用户可以通过再次捏合双指来绘制新的曲线,也可以通过再次点击绘制功能按钮结束绘制状态;
B、擦除功能:用户点击擦除功能按钮,右手食指指尖出现一个虚拟红色圆球,表示进入擦除状态,该红色圆球持续追踪右手食指的位置,系统将持续追踪右手食指与拇指指尖的位置,并计算两者之间的欧氏距离,根据欧氏距离判定,当两指捏合且距离绘制的线段曲线小于设定阈值(2厘米)时,系统将销毁对应的LineRenderer组件以擦除线条,再次点击擦除功能按钮结束擦除状态;此外,擦除功能同样适用于已经生成的几何体,其操作原理与擦除线条相同;
C、锁定功能:用户点击锁定功能按钮后,系统进入锁定状态,此时其他功能按钮被隐藏,并关闭已完成绘制的曲线和生成几何体的交互组件,用户无法通过手势选中或操作物体,再次点击锁定功能按钮后,系统结束锁定状态,恢复所有功能按钮和手势交互组件的现实与交互功能,此功能能够避免误触;
三个功能之间存在相互排斥的关系,当用户点击某一功能按钮激活对应状态时,系统会自动结束其他功能状态,确保各功能模块之间互不干扰,提升用户操作的流畅性和系统的响应效率。例如,当用户在绘制功能状态下点击擦除功能按钮时,系统将自动结束绘制功能状态并进入擦除功能状态,反之亦然。
优选的,步骤S2中的几何体拟合模块支持11种几何体的绘制、拟合、生成与交互,包括线段类、带有边界的平面类、体类和参数化曲面类,其中,线段类包括直线段和曲线段;带有边界的平面类包括圆形平面、三角形平面和四边形平面;体类包括椭球体、长方体和圆柱体;参数化曲面类包括漏斗形、碗形和圆环,具体包括:
几何体选择菜单:用户通过点击按钮或拖动滑动条选择想要生成的几何体,所选几何体的名称将会高亮显示;该菜单基于手势识别进行呼出和关闭,当系统识别到用户的左手五指握拳且掌心正对眼睛时,呼出该功能菜单;否则,自动关闭该功能菜单;
进行几何体参数的拟合。
优选的,几何体参数的拟合具体包括:
A、基本特征绘制,在生成特定几何体时,用户绘制该几何体的基本特征完成曲线的绘制,例如,若用户希望生成一个长方体,只需分别绘制两个相对面的四条边;若希望生成一个圆柱体,只需绘制两个相对的圆周;
B、拟合函数激活:在非绘制状态时,用户通过手势激活拟合函数,根据指定关节之间的欧氏距离判定,当用户左手的拇指尖与食指尖捏合时,启动一个协程以监视左手拇指尖和食指尖的位置,此时,当系统检测到两指在较短时间(0.2秒)内张开时,激活拟合函数;否则,关闭该协程;
C、数据准备:在完成拟合函数的激活手势后,系统读取所有绘制曲线中的点,并将这些点存储到MathNet的Vector<double>类型中,点集保存完成后,系统将清除所有绘制的曲线;
D、针对不同类型的几何体,采用不同的拟合算法进行处理。
优选的,针对不同类型的几何体,采用不同的拟合算法进行处理,具体包括以下几种类型:
a、直线段:通过构建协方差矩阵并进行特征值分解,确定直线的主要方向,随后,计算所有点在该方向上的投影,并通过识别远的两个投影点确定直线段的起点、终点及其方向;
b、曲线段:首先生成均匀分布的B样条节点向量,再利用De Boor算法在B样条曲线上进行均匀采样,生成密集的曲线点集;通过计算采样点之间的累积长度,并根据预设间隔距离进行线性插值,最终得到平滑且等间距的拟合点集;
c、带有边界的平面:采用主成分分析(PCA)方法计算平面的法向量和质心,将三维点集投影至拟合平面获得二维点集,使用QuickHull算法计算投影点集的凸包确定外边界,并在凸包点集中识别面积最大的多边形(采用十二边形近似圆形)作为最终拟合结果,算法输出包括多边形顶点坐标及其旋转信息;
d、椭球体:构建线性方程组,通过最小二乘法求解球心坐标和半径参数;
e、长方体:基于相邻点之间的连接距离阈值(4厘米)将输入点集分为两组进行聚类,通过计算两组点集的质心确定深度方向,对大点集进行矩形拟合得到四个顶点,并结合深度信息生成完整的八个顶点;
f、圆柱体:采用聚类方法分组,通过计算两组点集的质心确定中心位置、轴向和高度,对较大点集进行基于最小二乘法的圆面拟合,获得圆柱体的半径;
g、漏斗形和碗形:首先识别点集中的低点作为底部顶点,选取距底部远的点作为顶部顶点,将顶点代入二维曲线方程,其中,漏斗形:;碗形:,得到相应的曲面参数;旋转该二维曲线得到三维曲面,其中,漏斗形:;碗形:;其中,、、分别表示曲线或曲面上的点在三维空间中的坐标,表示的偏移比例,用于控制曲面的缩放,表示曲线的偏移量,用于控制曲线的起点和曲面的位置,表示曲线的形状参数,用于控制曲线的弯曲程度,表示曲线的缩放参数,用于控制曲面的缩放;
h、圆环:分别对大圆和小圆的点集进行最小二乘法的圆面拟合,获取两个圆的中心、半径和法向量,得到圆环的三维曲面方程:,其中,为大圆半径,为小圆半径。
优选的,步骤S3中的几何体生成和交互模块包括以下功能:
几何体渲染:读取拟合点集,采用自定义的方法生成几何体的网格(Mesh);
几何体交互:基于生成的网格,为几何体生成碰撞器(Collider),并添加MRTK3中的ObjectManipulator组件,实现用户与几何体的自然交互,用户通过手势直接抓取、移动、旋转和缩放几何体,同时,利用MRTK3中的ConstraintManager组件,对几何体的交互行为进行自定义的限制管理,例如,仅允许几何体在指定方向上进行移动和旋转。当用户的手触碰到几何体时,几何体的边界会亮起,显示当前几何体的边界;当手离开时,边框会逐渐消失;
姿态指示:每个几何体配备有一个箭头或坐标系,用于描述其姿态,当用户的手触碰到几何体时,箭头或坐标系出现,当手不在触碰时,箭头或坐标系会消失;
在每次移动或旋转几何体后,系统会启动一个协程,自动判断并调整几何体的y轴与世界坐标系的对齐情况;
对几何体参数进行定制调整。
优选的,几何体渲染的具体步骤为:
顶点生成:通过在局部坐标系的不同高度层(y值)下计算几何体的x和z坐标,从而获得多组不同高度下的顶点;
面构建:在相邻高度的顶点之间组成三角面,用以描述Mesh,添加MeshFilter和MeshRenderer组件,从而实现几何体的完整渲染和可视化。
优选的,在每次移动或旋转几何体后,系统会启动一个协程,自动判断并调整几何体的y轴与世界坐标系的对齐情况,具体步骤为:
夹角计算:计算几何体y轴与世界坐标系三轴的夹角;
对齐判定:当夹角小于预设阈值(5°)时,系统通过平滑旋转将几何体的y轴对齐至世界坐标系的相应轴向。
优选的,几何体参数的定制调整,具体包括:
A、三角形平面和四边形平面
交互节点生成:在几何体的顶点位置生成可交互的小球;
手势交互:当用户的手与几何体接触时,顶点小球被可视化并激活交互组件,用户通过抓取小球并在三角形或四边形平面上移动,实现顶点位置的动态调整;
实时拟合:移动顶点小球时,几何体生成与交互模块会激活相应的几何体拟合算法,实时计算、更新并渲染几何体的网格;
B、椭圆体、长方体和圆柱体
姿态坐标系:针对体类几何体,几何体生成与交互模块配置了用于描述其局部坐标系的坐标轴;
独立轴向缩放:用户通过抓取并移动局部坐标系(即姿态)的坐标轴,实现几何体在局部坐标系内的xyz三轴上的独立缩放操作;这种独立轴向缩放方式使得用户能够在各个方向上对几何体进行精确的尺寸调整。
C、参数化曲面
针对不同类型的参数化曲面,几何体生成与交互模块将生成相应的交互元素;
参数动态调整:用户通过手势抓取并移动交互元素,几何体生成与交互模块将自动更新相应的曲面参数,实现参数化曲面的动态调整,同时,在参数调整过程中,系统将实时重新计算几何体的网格数据,并即时渲染更新后的曲面。
因此,本发明采用上述基于混合现实的空间曲线绘制及几何体生成与交互方法,具有以下有益效果:
(1)通过设置的空间曲线绘制模块,基于手部跟踪和手势识别,允许用户在三维虚拟空间中自由使用手指绘制、擦除曲线;
(2)通过计算当前手指关节位置与上一存储点之间的距离来决定是否存入新点,不仅显著提升了算法效率,减轻了计算负担,同时为后续模块的处理提供了更优质的输入数据;
(3)在几何体生成与交互模块中,通过不同数学方法的组合应用,实现了特定场景下的几何体拟合需求;
(4)在几何体生成与交互模块,通过使用MRTK3开源框架的基础组件(包括ObjectManipulator、ConstraintManager和BoundsControl),并进行功能扩展和优化,以实现更丰富的交互体验。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明基于混合现实的空间曲线绘制及几何体生成与交互方法的流程图;
图2为本发明实施例定制功能菜单示意图;
图3为本发明实施例绘制功能的原理示意图;
图4为本发明实施例几何体菜单选择示意图;
图5为本发明实施例基本特征绘制示意图;
图6为本发明实施例拟合函数激活示意图,其中,(a)为拟合前,(b)为激活拟合函数,并生成几何体;
图7为本发明实施例参数化曲面生成相应交互元素示意图。
具体实施方式
以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,基于混合现实的空间曲线绘制及几何体生成与交互方法,包括以下步骤:
S1、通过空间曲线绘制模块,检测用户的手部姿态,完成空间曲线的绘制;空间曲线绘制模块包括:
手指关节识别,通过混合现实眼镜捕捉用户的手部,实时识别用户手部各关节的位姿,包括手腕、掌心、指尖、指间关节、掌指关节及掌腕关节等;
定制功能菜单,如图2所示,通过手势识别进行呼出和关闭,当识别到用户的左手五指张开且掌心朝向眼睛时,呼出功能菜单;否则,自动关闭功能菜单,功能菜单包括绘制功能、擦除功能和锁定功能,且功能菜单用于辅助用户在各功能之间自由切换。
功能菜单提供了多种功能模块,旨在通过手势控制在混合现实环境中实现几何体的绘制、擦除和锁定操作,具体包括:
A、绘制功能:用户在功能菜单中点击绘制功能按钮,右手食指指尖出现一个虚拟绿色圆球,表示进入绘制状态,绿色圆球持续追踪右手食指的位置,且系统持续追踪右手食指与拇指指尖的位置,并计算两者之间的欧式距离,公式为:
;
其中,是右手拇指指尖坐标,是右手食指指尖坐标,通过判断欧式距离,若是,表示开始绘制曲线,系统将右手食指指尖的运动轨迹实时可视化为三维空间曲线,如图3所示,具体为:将当前右手食指指尖的位置作为新点添加到Unity3D的LineRenderer组件中,并持续追踪指尖的位置,当指尖位置与上一个点的距离大于设定阈值(5毫米)时,系统再次采集指尖位置作为新点添加到LineRenderer组件中;当两指张开时,系统结束当前曲线的绘制,用户可以通过再次捏合双指来绘制新的曲线,也可以通过再次点击绘制功能按钮结束绘制状态;
B、擦除功能:用户点击擦除功能按钮,右手食指指尖出现一个虚拟红色圆球,表示进入擦除状态,该红色圆球持续追踪右手食指的位置,系统将持续追踪右手食指与拇指指尖的位置,并计算两者之间的欧氏距离,根据欧氏距离判定,当两指捏合且距离绘制的线段曲线小于设定阈值(2厘米)时,系统将销毁对应的LineRenderer组件以擦除线条,再次点击擦除功能按钮结束擦除状态;此外,擦除功能同样适用于已经生成的几何体,其操作原理与擦除线条相同;
C、锁定功能:用户点击锁定功能按钮后,系统进入锁定状态,此时其他功能按钮被隐藏,并关闭已完成绘制的曲线和生成几何体的交互组件,用户无法通过手势选中或操作物体,再次点击锁定功能按钮后,系统结束锁定状态,恢复所有功能按钮和手势交互组件的现实与交互功能,此功能能够避免误触;
三个功能之间存在相互排斥的关系,当用户点击某一功能按钮激活对应状态时,系统会自动结束其他功能状态,确保各功能模块之间互不干扰,提升用户操作的流畅性和系统的响应效率。例如,当用户在绘制功能状态下点击擦除功能按钮时,系统将自动结束绘制功能状态并进入擦除功能状态,反之亦然。
S2、在完成空间曲线的绘制后,通过几何体拟合模块完成几何体的拟合,包括几何体的位置、姿态、大小及相关几何参数;
几何体拟合模块支持11种几何体的绘制、拟合、生成与交互,包括线段类、带有边界的平面类、体类和参数化曲面类,其中,线段类包括直线段和曲线段;带有边界的平面类包括圆形平面、三角形平面和四边形平面;体类包括椭球体、长方体和圆柱体;参数化曲面类包括漏斗形、碗形和圆环,具体包括:
几何体选择菜单:如图4所示,用户通过点击按钮或拖动滑动条选择想要生成的几何体,所选几何体的名称将会高亮显示;该菜单基于手势识别进行呼出和关闭,当系统识别到用户的左手五指握拳且掌心正对眼睛时,呼出该功能菜单;否则,自动关闭该功能菜单;
拟合几何体的参数,具体包括:
(1)基本特征绘制
在生成特定几何体时,用户绘制该几何体的基本特征完成曲线的绘制,例如,若用户希望生成一个长方体,只需分别绘制两个相对面的四条边,如图5所示;若希望生成一个圆柱体,只需绘制两个相对的圆周;
(2)拟合函数激活
在非绘制状态时,用户通过手势激活拟合函数,根据指定关节之间的欧氏距离判定,当用户左手的拇指尖与食指尖捏合时,启动一个协程以监视左手拇指尖和食指尖的位置,此时,当系统检测到两指在较短时间(0.2秒)内张开时,激活拟合函数;否则,关闭该协程;如图6所示。
(3)数据准备
在完成拟合函数的激活手势后,系统读取所有绘制曲线中的点,并将这些点存储到MathNet的Vector<double>类型中,点集保存完成后,系统将清除所有绘制的曲线;
(4)几何体拟合算法
针对不同类型的几何体,采用不同的拟合算法进行处理。具体包括以下几种类型:
a、直线段:通过构建协方差矩阵并进行特征值分解,确定直线的主要方向,随后,计算所有点在该方向上的投影,并通过识别远的两个投影点确定直线段的起点、终点及其方向;
b、曲线段:首先生成均匀分布的B样条节点向量,再利用De Boor算法在B样条曲线上进行均匀采样,生成密集的曲线点集;通过计算采样点之间的累积长度,并根据预设间隔距离进行线性插值,最终得到平滑且等间距的拟合点集;
c、带有边界的平面:采用主成分分析(PCA)方法计算平面的法向量和质心,将三维点集投影至拟合平面获得二维点集,使用QuickHull算法计算投影点集的凸包确定外边界,并在凸包点集中识别面积最大的多边形(采用十二边形近似圆形)作为最终拟合结果,算法输出包括多边形顶点坐标及其旋转信息;
d、椭球体:构建线性方程组,通过最小二乘法求解球心坐标和半径参数;
e、长方体:基于相邻点之间的连接距离阈值(4厘米)将输入点集分为两组进行聚类,通过计算两组点集的质心确定深度方向,对大点集进行矩形拟合得到四个顶点,并结合深度信息生成完整的八个顶点;
f、圆柱体:采用聚类方法分组,通过计算两组点集的质心确定中心位置、轴向和高度,对较大点集进行基于最小二乘法的圆面拟合,获得圆柱体的半径;
g、漏斗形和碗形:首先识别点集中的低点作为底部顶点,选取距底部远的点作为顶部顶点,将顶点代入二维曲线方程,其中,漏斗形:;碗形:,得到相应的曲面参数;旋转该二维曲线得到三维曲面,其中,漏斗形:;碗形:;其中,、、分别表示曲线或曲面上的点在三维空间中的坐标,表示的偏移比例,用于控制曲面的缩放,表示曲线的偏移量,用于控制曲线的起点和曲面的位置,表示曲线的形状参数,用于控制曲线的弯曲程度,表示曲线的缩放参数,用于控制曲面的缩放;
h、圆环:分别对大圆和小圆的点集进行最小二乘法的圆面拟合,获取两个圆的中心、半径和法向量,得到圆环的三维曲面方程:,其中,为大圆半径,为小圆半径。
S3、在完成几何体拟合后,通过几何体生成和交互模块实现几何体的渲染、交互及参数调整,包括以下功能:
1、几何体渲染:读取拟合点集,采用自定义的方法生成几何体的网格(Mesh);具体包括以下步骤:
顶点生成:通过在局部坐标系的不同高度层(y值)下计算几何体的x和z坐标,从而获得多组不同高度下的顶点;
面构建:在相邻高度的顶点之间组成三角面,用以描述Mesh,添加MeshFilter和MeshRenderer组件,从而实现几何体的完整渲染和可视化。
2、几何体交互:基于生成的网格,为几何体生成碰撞器(Collider),并添加MRTK3中的ObjectManipulator组件,实现用户与几何体的自然交互,用户通过手势直接抓取、移动、旋转和缩放几何体,同时,利用MRTK3中的ConstraintManager组件,对几何体的交互行为进行自定义的限制管理,例如,仅允许几何体在指定方向上进行移动和旋转。利用MRTK3中的BoundsControl组件,当用户的手触碰到几何体时,几何体的边界会亮起,显示当前几何体的边界;当手离开时,边框会逐渐消失;
3、姿态指示:每个几何体配备有一个箭头或坐标系,用于描述其姿态,当用户的手触碰到几何体时,箭头或坐标系出现,当手不在触碰时,箭头或坐标系会消失;
4、在每次移动或旋转几何体后,系统会启动一个协程,自动判断并调整几何体的y轴与世界坐标系的对齐情况;具体步骤为:
夹角计算:计算几何体y轴与世界坐标系三轴的夹角;
对齐判定:当夹角小于预设阈值(5°)时,系统通过平滑旋转将几何体的y轴对齐至世界坐标系的相应轴向。
5、对几何体参数进行定制调整:尽管ObjectManipulator组件提供了基本的几何体缩放功能,但在某些情况下存在局限性。例如,对三角形平面进行缩放时,ObjectManipulator组件只能实现等比例缩放,即改变三条边的长度,而无法改变三条边之间的比例。几何体生成与交互模块针对这一问题进行了优化,具体包括:
A、三角形平面和四边形平面
交互节点生成:在几何体的顶点位置生成可交互的小球;
手势交互:当用户的手与几何体接触时,顶点小球被可视化并激活交互组件,用户通过抓取小球并在三角形或四边形平面上移动,实现顶点位置的动态调整;
实时拟合:移动顶点小球时,几何体生成与交互模块会激活相应的几何体拟合算法,实时计算、更新并渲染几何体的网格;
B、椭圆体、长方体和圆柱体
姿态坐标系:针对体类几何体,几何体生成与交互模块配置了用于描述其局部坐标系的坐标轴;
独立轴向缩放:用户通过抓取并移动局部坐标系(即姿态)的坐标轴,实现几何体在局部坐标系内的xyz三轴上的独立缩放操作;这种独立轴向缩放方式使得用户能够在各个方向上对几何体进行精确的尺寸调整。
C、参数化曲面
针对不同类型的参数化曲面,几何体生成与交互模块将生成相应的交互元素;例如,对于漏斗形曲面,将生成三个圆球和一条渐近线,如图7所示。
参数动态调整:用户通过手势抓取并移动交互元素,几何体生成与交互模块将自动更新相应的曲面参数,实现参数化曲面的动态调整,同时,在参数调整过程中,系统将实时重新计算几何体的网格数据,并即时渲染更新后的曲面。
因此,本发明采用上述基于混合现实的空间曲线绘制及几何体生成与交互方法,用户能够利用手势控制在虚拟空间中进行绘图和生成几何体,并对生成的几何体的几何参数进行在线实时调整,显著提升了交互体验和操作精度。
最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。
Claims (8)
1.基于混合现实的空间曲线绘制及几何体生成与交互方法,其特征在于,包括以下步骤:
S1、通过空间曲线绘制模块,检测用户的手部姿态,完成空间曲线的绘制;
S2、在完成空间曲线的绘制后,通过几何体拟合模块完成几何体的拟合,包括几何体的位置、姿态、大小及相关几何参数;
S3、在完成几何体拟合后,通过几何体生成和交互模块实现几何体的渲染、交互及参数调整;
几何体生成和交互模块包括以下功能:
几何体渲染:读取拟合点集,采用自定义的方法生成几何体的网格;
几何体交互:基于生成的网格,为几何体生成碰撞器,并添加MRTK3中的ObjectManipulator组件,实现用户与几何体的自然交互,用户通过手势直接抓取、移动、旋转和缩放几何体,同时,利用MRTK3中的ConstraintManager组件,对几何体的交互行为进行自定义的限制管理,当用户的手触碰到几何体时,几何体的边界会亮起,显示当前几何体的边界;当手离开时,边框会逐渐消失;
姿态指示:每个几何体配备有一个箭头或坐标系,用于描述其姿态,当用户的手触碰到几何体时,箭头或坐标系出现,当手不再触碰时,箭头或坐标系会消失;
在每次移动或旋转几何体后,系统会启动一个协程,自动判断并调整几何体的y轴与世界坐标系的对齐情况;
对几何体参数进行定制调整;
几何体参数的定制调整,具体包括:
A、三角形平面和四边形平面
交互节点生成:在几何体的顶点位置生成可交互的小球;
手势交互:当用户的手与几何体接触时,顶点小球被可视化并激活交互组件,用户通过抓取小球并在三角形或四边形平面上移动,实现顶点位置的动态调整;
实时拟合:移动顶点小球时,几何体生成与交互模块会激活相应的几何体拟合算法,实时计算、更新并渲染几何体的网格;
B、椭圆体、长方体和圆柱体
姿态坐标系:针对体类几何体,几何体生成与交互模块配置了用于描述其局部坐标系的坐标轴;
独立轴向缩放:用户通过抓取并移动局部坐标系的坐标轴,实现几何体在局部坐标系内的xyz三轴上的独立缩放操作;
C、参数化曲面
针对不同类型的参数化曲面,几何体生成与交互模块将生成相应的交互元素;
参数动态调整:用户通过手势抓取并移动交互元素,几何体生成与交互模块将自动更新相应的曲面参数,实现参数化曲面的动态调整,同时,在参数调整过程中,系统将实时重新计算几何体的网格数据,并即时渲染更新后的曲面。
2.根据权利要求1所述的基于混合现实的空间曲线绘制及几何体生成与交互方法,其特征在于:步骤S1中的空间曲线绘制模块包括:
手指关节识别,通过混合现实眼镜捕捉用户的手部,实时识别用户手部各关节的位姿;
定制功能菜单,通过手势识别进行呼出和关闭,当识别到用户的左手五指张开且掌心朝向眼睛时,呼出功能菜单;否则,自动关闭功能菜单,功能菜单包括绘制功能、擦除功能和锁定功能。
3.根据权利要求2所述的基于混合现实的空间曲线绘制及几何体生成与交互方法,其特征在于,功能菜单通过手势控制实现其各种功能,具体为:
A、绘制功能:用户在功能菜单中点击绘制功能按钮,右手食指指尖出现一个虚拟绿色圆球,表示进入绘制状态,绿色圆球持续追踪右手食指的位置,且系统持续追踪右手食指与拇指指尖的位置,并计算两者之间的欧式距离,公式为:
;
其中,是右手拇指指尖坐标,是右手食指指尖坐标,通过判断欧式距离,若是,表示开始绘制曲线,系统将右手食指指尖的运动轨迹实时可视化为三维空间曲线,具体为:将当前右手食指指尖的位置作为新点添加到Unity3D的LineRenderer组件中,并持续追踪指尖的位置,当指尖位置与上一个点的距离大于设定阈值时,系统再次采集指尖位置作为新点添加到LineRenderer组件中;当两指张开时,系统结束当前曲线的绘制,用户通过再次捏合双指来绘制新的曲线,再次点击绘制功能按钮结束绘制状态;
B、擦除功能:用户点击擦除功能按钮,右手食指指尖出现一个虚拟红色圆球,表示进入擦除状态,该红色圆球持续追踪右手食指的位置,系统将持续追踪右手食指与拇指指尖的位置,并计算两者之间的欧氏距离,根据欧氏距离判定,当两指捏合且距离绘制的线段曲线小于设定阈值时,系统将销毁对应的LineRenderer组件以擦除线条,再次点击擦除功能按钮结束擦除状态;
C、锁定功能:用户点击锁定功能按钮后,系统进入锁定状态,此时其他功能按钮被隐藏,并关闭已完成绘制的曲线和生成几何体的交互组件,用户无法通过手势选中或操作物体,再次点击锁定功能按钮后,系统结束锁定状态,恢复所有功能按钮和手势交互组件的现实与交互功能;
三个功能之间存在相互排斥的关系,当用户点击某一功能按钮激活对应状态时,系统会自动结束其他功能状态。
4.根据权利要求1所述的基于混合现实的空间曲线绘制及几何体生成与交互方法,其特征在于,步骤S2中的几何体拟合模块支持11种几何体的绘制、拟合、生成与交互,包括线段类、带有边界的平面类、体类和参数化曲面类,其中,线段类包括直线段和曲线段;带有边界的平面类包括圆形平面、三角形平面和四边形平面;体类包括椭球体、长方体和圆柱体;参数化曲面类包括漏斗形、碗形和圆环,具体包括:
几何体选择菜单:用户通过点击按钮或拖动滑动条选择想要生成的几何体,所选几何体的名称将会高亮显示;该菜单基于手势识别进行呼出和关闭,当系统识别到用户的左手五指握拳且掌心正对眼睛时,呼出该菜单;否则,自动关闭该菜单;
进行几何体参数的拟合。
5.根据权利要求4所述的基于混合现实的空间曲线绘制及几何体生成与交互方法,其特征在于,几何体参数的拟合具体包括:
A、基本特征绘制,在生成几何体时,用户绘制该几何体的基本特征完成曲线的绘制;
B、拟合函数激活:在非绘制状态时,用户通过手势激活拟合函数,根据指定关节之间的欧氏距离判定,当用户左手的拇指尖与食指尖捏合时,启动一个协程以监视左手拇指尖和食指尖的位置,此时,当系统检测到两指在短时间内张开时,激活拟合函数;否则,关闭该协程;
C、数据准备:在完成拟合函数的激活手势后,系统读取所有绘制曲线中的点,并将这些点存储到MathNet的Vector<double>类型中,点集保存完成后,系统将清除所有绘制的曲线;
D、针对不同类型的几何体,采用不同的拟合算法进行处理。
6.根据权利要求5所述的基于混合现实的空间曲线绘制及几何体生成与交互方法,其特征在于,针对不同类型的几何体,采用不同的拟合算法进行处理,具体包括以下几种类型:
a、直线段:通过构建协方差矩阵并进行特征值分解,确定直线的主要方向,随后,计算所有点在该方向上的投影,并通过识别远端的两个投影点确定直线段的起点、终点及其方向;
b、曲线段:首先生成均匀分布的B样条节点向量,再利用De Boor算法在B样条曲线上进行均匀采样,生成密集的曲线点集;通过计算采样点之间的累积长度,并根据预设间隔距离进行线性插值,最终得到平滑且等间距的拟合点集;
c、带有边界的平面:采用主成分分析方法计算平面的法向量和质心,将三维点集投影至拟合平面获得二维点集,使用QuickHull算法计算投影点集的凸包确定外边界,并在凸包点集中识别面积大的多边形作为最终拟合结果,算法输出包括多边形顶点坐标及其旋转信息;
d、椭球体:构建线性方程组,通过最小二乘法求解球心坐标和半径参数;
e、长方体:基于相邻点之间的连接距离阈值将输入点集分为两组进行聚类,通过计算两组点集的质心确定深度方向,对大点集进行矩形拟合得到四个顶点,并结合深度信息生成完整的八个顶点;
f、圆柱体:采用聚类方法分组,通过计算两组点集的质心确定中心位置、轴向和高度,对大点集进行基于最小二乘法的圆面拟合,获得圆柱体的半径;
g、漏斗形和碗形:首先识别点集中的低点作为底部顶点,选取距底部远的点作为顶部顶点,将顶点代入二维曲线方程,其中,漏斗形:;碗形:,得到相应的曲面参数;旋转该二维曲线得到三维曲面,其中,漏斗形:;碗形:;其中,、、分别表示曲线或曲面上的点在三维空间中的坐标,表示的偏移比例,用于控制曲面的缩放,表示曲线的偏移量,用于控制曲线的起点和曲面的位置,表示曲线的形状参数,用于控制曲线的弯曲程度,表示曲线的缩放参数,用于控制曲面的缩放;
h、圆环:分别对大圆和小圆的点集进行最小二乘法的圆面拟合,获取两个圆的中心、半径和法向量,得到圆环的三维曲面方程:,其中,为大圆半径,为小圆半径。
7.根据权利要求1所述的基于混合现实的空间曲线绘制及几何体生成与交互方法,其特征在于,几何体渲染的具体步骤为:
顶点生成:通过在局部坐标系的不同高度层下计算几何体的x和z坐标,从而获得多组不同高度下的顶点;
面构建:在相邻高度的顶点之间组成三角面,添加MeshFilter和MeshRenderer组件,从而实现几何体的完整渲染和可视化。
8.根据权利要求1所述的基于混合现实的空间曲线绘制及几何体生成与交互方法,其特征在于,在每次移动或旋转几何体后,系统会启动一个协程,自动判断并调整几何体的y轴与世界坐标系的对齐情况,具体步骤为:
夹角计算:计算几何体y轴与世界坐标系三轴的夹角;
对齐判定:当夹角小于预设阈值时,系统通过平滑旋转将几何体的y轴对齐至世界坐标系的相应轴向。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202510240639.5A CN119722854B (zh) | 2025-03-03 | 2025-03-03 | 基于混合现实的空间曲线绘制及几何体生成与交互方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202510240639.5A CN119722854B (zh) | 2025-03-03 | 2025-03-03 | 基于混合现实的空间曲线绘制及几何体生成与交互方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN119722854A CN119722854A (zh) | 2025-03-28 |
| CN119722854B true CN119722854B (zh) | 2025-04-29 |
Family
ID=95095705
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202510240639.5A Active CN119722854B (zh) | 2025-03-03 | 2025-03-03 | 基于混合现实的空间曲线绘制及几何体生成与交互方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN119722854B (zh) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109284000A (zh) * | 2018-08-10 | 2019-01-29 | 西交利物浦大学 | 一种虚拟现实环境下三维几何物体可视化的方法及系统 |
| CN117994480A (zh) * | 2024-02-06 | 2024-05-07 | 清华大学深圳国际研究生院 | 一种轻量化手部重建与驱动的方法 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113238650B (zh) * | 2021-04-15 | 2023-04-07 | 青岛小鸟看看科技有限公司 | 手势识别和控制的方法、装置及虚拟现实设备 |
| CN118037917A (zh) * | 2023-12-27 | 2024-05-14 | 中国航空工业集团公司西安航空计算技术研究所 | 基于ThreeJS的网格图像绘制方法 |
| CN118377384B (zh) * | 2024-06-20 | 2024-09-10 | 深圳市星野信息技术有限公司 | 一种虚拟场景交互方法和系统 |
-
2025
- 2025-03-03 CN CN202510240639.5A patent/CN119722854B/zh active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109284000A (zh) * | 2018-08-10 | 2019-01-29 | 西交利物浦大学 | 一种虚拟现实环境下三维几何物体可视化的方法及系统 |
| CN117994480A (zh) * | 2024-02-06 | 2024-05-07 | 清华大学深圳国际研究生院 | 一种轻量化手部重建与驱动的方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN119722854A (zh) | 2025-03-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12061790B2 (en) | Defining and deforming 3D virtual objects using cross-sectional shapes | |
| Zheng et al. | Desktop virtual reality interface for computer aided conceptual design using geometric techniques | |
| Sheng et al. | An interface for virtual 3D sculpting via physical proxy. | |
| Gannon et al. | Tactum: a skin-centric approach to digital design and fabrication | |
| Kang et al. | Instant 3D design concept generation and visualization by real-time hand gesture recognition | |
| Smith et al. | Digital foam interaction techniques for 3D modeling | |
| US20230377268A1 (en) | Method and apparatus for multiple dimension image creation | |
| CN114529691B (zh) | 一种窗口控制方法、电子设备及计算机可读存储介质 | |
| CN111665933A (zh) | 虚拟或者增强现实中的对象操作方法及装置 | |
| US20080062169A1 (en) | Method Of Enabling To Model Virtual Objects | |
| JP2021131848A (ja) | 3dモデリングにおける没入型ジェスチャを用いたエッジの選択 | |
| CN109960403A (zh) | 沉浸式环境下针对医学图像的可视化呈现和交互方法 | |
| Wong et al. | Virtual 3d sculpting | |
| JP2025104251A (ja) | 実物感のあるタイピング又はタッチの実現方法 | |
| Jang et al. | Airsculpt: A wearable augmented reality 3d sculpting system | |
| Aponte et al. | Grav: Grasp volume data for the design of one-handed xr interfaces | |
| O'Hagan et al. | Visual gesture interfaces for virtual environments | |
| Machuca et al. | Interaction Devices and Techniques for 3D Sketching | |
| JP2021131847A (ja) | 3dモデリングにおける没入型ジェスチャを用いた面の選択 | |
| CN119722854B (zh) | 基于混合现实的空间曲线绘制及几何体生成与交互方法 | |
| CN120491860A (zh) | 设备交互方法、可穿戴设备、存储介质和程序产品 | |
| Mahdikhanlou et al. | Object manipulation and deformation using hand gestures | |
| Schkolne et al. | Surface drawing. | |
| Scalas et al. | A first step towards cage-based deformation in virtual reality | |
| Valente et al. | From A-Pose to AR-Pose: Animating Characters in Mobile AR |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |