利索能及
我要发布
收藏
专利号: 2023115847715
申请人: 山东捷瑞数字科技股份有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2026-06-16
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于三维引擎的柔性附着物随刚性被附着物运动模拟方法,特征在于,包括以下步骤:S1:将柔性附着物模型和刚性被附着物模型导入三维引擎,并将两模型以装配位置组合放置;

S2:模拟现实中的操作,将刚性被附着物从初始状态推动至任意位置,使其在三维空间内发生运动姿态变化;

S3:将刚性被附着物在三维空间内的角度变化分解为倾斜角和旋转角,并分别计算出这两个角;

S4:基于求出的倾斜角,使柔性附着物将在模型形变方法的控制下跟随刚性被附着物的运动变化发生相应变形;

S5:将求出的旋转角赋值给柔性附着物,使其旋转至与刚性被附着物完全贴合。

2.如权利要求1所述的一种基于三维引擎的柔性附着物随刚性被附着物运动模拟方法,其特征在于,所述S1中,刚性被附着物为操纵杆,柔性附着物为防尘套;

所述刚性被附着物模型和柔性附着物模型均为普通fbx格式的模型。

3.如权利要求1所述的一种基于三维引擎的柔性附着物随刚性被附着物运动模拟方法,其特征在于,所述S2中,模拟将刚性被附着物从初始状态AD推动至任意位置AC1,其中A为刚性被附着物的折弯点,D为刚性被附着物上任意点P的初始点位,AD为垂直线,C1为刚性被附着物运动后任意点P的结束点位,AC1为斜线。

4.如权利要求3所述的一种基于三维引擎的柔性附着物随刚性被附着物运动模拟方法,其特征在于,所述S3中的倾斜角通过以下方法计算:所述刚性被附着物从初始状态AD推动至任意位置AC1时,AD与AC1之间的夹角∠DAC1即为刚性被附着物的倾斜角;

分别作AC1在前平面ABCD和侧平面AA1D1D上的投影AC和AD1,则∠DAC为刚性被附着物的横向转动角度,∠DAD1为刚性被附着物的纵向转动角度;在三维引擎中分别获取∠DAC、∠DAD1的值;

计算∠DAC的弧度Rad1=∠DAC*Math.RadToDeg();

计算∠DAD1的弧度Rad2=∠DAD1*Math.RadToDeg();

由公式Tan(Rad1)=DC÷AD、Tan(Rad2)=DD1÷AD,可得:DC=AD*Tan(Rad1);DD1=AD*Tan(Rad2);

已知直角三角形两条直角边DC、DD1,求第三边DC1=D1C=sqrt(DC²+DD1²);

基于tan∠DAC1=DC1÷AD;可得:

∠DAC1的弧度Rad3=ATan(DC1÷AD);

=ATan(sqrt(DC²+DD1²)÷AD);

=ATan(sqrt(AD²*Tan²(Rad1)+AD²*Tan²(Rad2))÷AD);

=ATan(sqrt(Tan²(Rad1)+Tan²(Rad2)));

最终可得倾斜角∠DAC1=Rad3*Math.RadToDeg()。

5.如权利要求4所述的一种基于三维引擎的柔性附着物随刚性被附着物运动模拟方法,其特征在于,所述S3中的旋转角通过以下方法计算:首先确定刚性被附着物的自身朝向;

在三维引擎中,方向向量Direction=(1,0,0)*∠DAC+(0,0,1)*∠DAD1;其中,(1,0,0)*∠DAC表示刚性被附着物的横向转动角度∠DAC的基础向量;(0,0,1)*∠DAD1表示刚性被附着物的纵向转动角度∠DAD1的基础向量,二者相加即为形成两个向量正中间的基础向量;

刚性被附着物自身绕y轴的旋转角度angleY=angle(Direction,(0,0,1));

其中,Direction为方向向量,(0,0,1)为刚性被附着物初始状态的朝向向量;

由向量叉乘求得旋转方向,cross=(0,0,1)×Direction;

由笛卡尔坐标系得,当cross.y<0时,angleY=360‑angleY;

此时,angleY即为刚性被附着物绕自身y轴顺时针旋转的角度,也即旋转角的角度。

6.如权利要求5所述的一种基于三维引擎的柔性附着物随刚性被附着物运动模拟方法,其特征在于,所述S4中的模型形变方法,包括以下步骤:S41、在三维引擎中确定柔性附着物模型的形变折弯基准点,所述形变折弯基准点即为刚性被附着物的折弯点A;

S42、遍历柔性附着物模型上的所有顶点,获取所有顶点中y轴坐标值大于折弯点A的y轴坐标值的顶点,加入Points数组,这些顶点即为柔性附着物模型上需要形变位移的点;

S43、求出所述数组Points中所有模型顶点位移后的坐标位置,重新渲染模型完成柔性附着物折弯形变的模型顶点移动操作。

7.如权利要求6所述的一种基于三维引擎的柔性附着物随刚性被附着物运动模拟方法,其特征在于,所述S43中,所述数组Points中所有模型顶点位移后的坐标位置的计算方法如下:基于数组Points中任意一点Point1(x1,y1,z1),作平行于y轴、垂直于Z轴的垂线L1,得到点Point1于折弯点A所在水平面上的投影点Point2(x1,y,z1),L1长度即为y1‑y,点Point1移动后标记为点Point3,基于点point3作垂直于L1的辅助线形成直角三角形,根据三角函数计算两条直角边的长度即得出点Point3较之点Point1的位移值,最终得出点Point1位移后的终点Point3的坐标值:Point3(x1,(y1‑y)*cos倾斜角+y,z1+(y1‑y)*sin倾斜角)。

8.如权利要求7所述的一种基于三维引擎的柔性附着物随刚性被附着物运动模拟方法,其特征在于,所述S5具体步骤如下:调整柔性附着物朝向使之与被附着刚性物体的朝向一致;

基于所求出的角度值angleY,在三维引擎中围绕Y轴旋转柔性附着物模型,使得柔性附着物模型与被附着刚性物体模型对应贴合,完成柔性附着物跟随形变效果。