[发明专利]一种操作三维场景中物体旋转的方法、系统、装置及介质有效
| 申请号: | 202310464417.2 | 申请日: | 2023-04-27 |
| 公开(公告)号: | CN116185244B | 公开(公告)日: | 2023-08-01 |
| 发明(设计)人: | 王涛;李文淼;张伟顺;赵影 | 申请(专利权)人: | 山东捷瑞数字科技股份有限公司 |
| 主分类号: | G06F3/04815 | 分类号: | G06F3/04815;G06F3/0484;G06F3/0487;G06F3/0346;G06F3/038 |
| 代理公司: | 烟台双联专利事务所(普通合伙) 37225 | 代理人: | 吕静 |
| 地址: | 264003 山东*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 操作 三维 场景 物体 旋转 方法 系统 装置 介质 | ||
1.一种操作三维场景中物体旋转的方法,其特征在于,包括以下步骤:
步骤1:获取三维场景中物体的轴向向量和手柄的速度向量,所述轴向向量也即物体旋转所在平面的法线向量;所述手柄的速度向量通过VR手柄的软件开发工具包SDK实时获取;
步骤2:根据步骤1得到的物体旋转所在平面的法线向量和手柄在三维场景中运动的速度向量,计算手柄沿物体旋转平面的运动速度:
;
其中,为当前手柄在三维场景中运动的速度向量,为物体旋转所在平面的法线向量;
步骤3:获取旋转方向缓存队列signBuffer;具体包括:
步骤3-1:获取手柄旋转方向值:
根据三维向量计算手柄旋转方向值:
;
其中,为物体旋转所在平面的法线向量,为当前获得的手柄速度向量,为上一次获得的手柄速度向量;
步骤3-2:将获取的手柄旋转方向值与预设的阈值作比较,经以下逻辑判断,将值进入旋转方向缓存队列signBuffer:
当旋转方向值时,手柄不转动,此时将值0进入转动方向缓存队列signBuffer,即;
当旋转方向值时,根据左手定则,在物体旋转所在平面的法线向量指向操作者的情况下,当旋转方向值时,手柄逆时针转动,此时将值-1进入旋转方向缓存队列signBuffer;当旋转方向值 时,手柄顺时针转动,此时将值1进入旋转方向缓存队列signBuffer,即;
步骤4:获取旋转角度缓存队列angularBuffer;具体包括:
步骤4-1:计算当前获得的手柄速度向量与上一次获得的手柄速度向量的夹角:
;
步骤4-2:通过旋转方向缓存队列signBuffer,计算得出当前旋转方向的均值averageSign,计算方法为:
;
其中,bufferCapacity为缓存队列长度;
步骤4-3:提取转动角度缓存队列angularBuffer的队列首值,通过符号函数判断其符号值与步骤4-2得到的旋转方向的均值averageSign是否相等:
当时,当前手柄转动方向与上一次获得的转动方向相同,将当前获得手柄转动角度与方向进入转动角度缓存队列angularBuffer,即:
angularBuffer[0]=tempAngle×averageSign;
当时,当前手柄转动方向与上一次获得的转动方向不一致,此时将转动角度缓存队列angularBuffer的值都置为0,即:
;
其中, angularBuffer[i]代表队列中索引i的值;
然后将当前获得手柄转动角度与方向进入转动角度缓存队列angularBuffer,即:
;
步骤5:计算手柄带动物体旋转的角度并输出,具体为:
计算转动角度缓存队列angularBuffer所有项的平均值,即
;
其中,为缓存队列长度;输出为当前手柄带动物体旋转的角度,当时,物体顺时针转动,当时,物体逆时针转动。
2.根据权利要求1所述的一种操作三维场景中物体旋转的方法,其特征在于,
获取旋转角度缓存队列angularBuffer之后,将当前获得的手柄速度向量赋值给上一次获得的手柄速度向量,用来进行下一次旋转角度计算,即。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东捷瑞数字科技股份有限公司,未经山东捷瑞数字科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310464417.2/1.html,转载请声明来源钻瓜专利网。





