1.一种基于三维引擎的链传动结构模型运动模拟方法,其特征在于,包括:步骤1:创建链传动结构模型,所述链传动结构模型包括链轮和链条,所述链条由若干个链节首尾连接而成;
步骤2:将链传动结构模型导入至三维引擎中;
步骤3:将所有链节作为子物体置于同一父物体层级下,运行初始化时遍历所有子物体链节,将子物体链节按照遍历增长的数量进行命名,获取并记录每个子物体链节的位置和旋转角度信息,以子物体链节名字作为链节标识存储于信息集合A中;
步骤4:获取链条的运动速度v;
步骤5:基于链条的运动速度v,计算单位时间t内链节的直线运动距离S=vt;所述单位时间t内链节的直线运动距离S即单位时间t内链轮的圆周运动弧长L;
步骤6:基于单位时间t内链轮的圆周运动弧长L,计算链轮圆周运动的角速度ω=(L/(2πr))((2π)/t)=L/(rt)=S/(rt)=v/r;因链节以链轮圆心为圆心跟随链轮做圆周运动,故所述链轮圆周运动的角速度ω即等于链节的圆周运动角速度;
步骤7:在父物体层级下根据链节标识查找到直线运动的链节及其相邻链节,根据两个链节当前的位置信息,确定链节直线运动的方向;
步骤8:基于链条的运动速度v,通过三维引擎移动方法设置链节的直线运动;基于链轮和链节的圆周运动角速度,通过三维引擎旋转方法设置链轮和链节的圆周运动;
控制链节作直接运动的所述三维引擎移动方法为:
Obj.transform.Translate(Vector3 axis*float speed*Time.deltaTime);
其中,Obj表示控制移动的链节;axis表示移动的方向;speed表示速度;
Time.deltaTime为固定时间增量,代表每秒;
控制链轮和链节作圆周运动的所述三维引擎旋转方法为:
Obj.transform.Rotate(Vector3 circle*float angle*Time.deltaTime)其中,Obj表示控制旋转的链节或链轮;circle表示圆周运动的圆心;angle表示旋转的角度;Time.deltaTime为固定时间增量,代表每秒。
2.如权利要求1所述的一种基于三维引擎的链传动结构模型运动模拟方法,其特征在于,所述步骤8之后,还包括:步骤9:当某一链节运动至下一链节位置时,基于该某一链节名字,在信息集合A中查找其下一链节的位置和旋转角度信息,并将所述位置和旋转角度信息与当前链节信息进行对比,辅助检测链节运动的正确性。
3.一种基于三维引擎的链传动结构模型运动模拟系统,其特征在于,包括:模型创建模块,用于创建链传动结构模型;
模型导入模块,用于将链传动结构模型导入至三维引擎中;
初始设置模块,用于将所有链节作为子物体置于同一父物体层级下,运行初始化时遍历所有子物体链节,将子物体链节按照遍历增长的数量进行命名,获取并记录每个子物体链节的位置和旋转角度信息,以子物体链节名字作为链节标识存储于信息集合A中;
速度获取模块,用于获取链条的运动速度v;
第一计算模块,用于基于链条的运动速度v,计算单位时间t内链节的直线运动距离S=vt;所述单位时间t内链节的直线运动距离S即单位时间t内链轮的圆周运动弧长L;
第二计算模块,用于基于单位时间t内链轮的圆周运动弧长L,计算链轮圆周运动的角速度ω=(L/(2πr))((2π)/t)=L/(rt)=S/(rt)=v/r;因链节以链轮圆心为圆心跟随链轮做圆周运动,故所述链轮圆周运动的角速度ω即等于链节的圆周运动角速度;
运动方向确定模块,用于在父物体层级下根据链节标识查找到直线运动的链节及其相邻链节,根据两个链节当前的位置信息,确定链节直线运动的方向;
运动设置模块,用于基于链条的运动速度v,通过三维引擎移动方法设置链节的直线运动;基于链轮和链节的圆周运动角速度,通过三维引擎旋转方法设置链轮和链节的圆周运动;
所述运动设置模块进一步用于通过以下方法设置链节的直线运动:
Obj.transform.Translate(Vector3 axis*float speed*Time.deltaTime);
其中,Obj表示控制移动的链节;axis表示移动的方向;speed表示速度;
Time.deltaTime为固定时间增量,代表每秒;
所述运动设置模块进一步用于通过以下方法设置链轮和链节的圆周运动:Obj.transform.Rotate(Vector3 circle*float angle*Time.deltaTime)其中,Obj表示控制旋转的链节或链轮;circle表示圆周运动的圆心;angle表示旋转的角度;Time.deltaTime为固定时间增量,代表每秒。
4.如权利要求3所述的一种基于三维引擎的链传动结构模型运动模拟系统,其特征在于,还包括:辅助验证模块,用于通过信息集合A中的链节标识及其位置和旋转角度信息对链节运动的正确性进行辅助验证。