[发明专利]一种三维场景中实现物体旋转操作的方法有效
申请号: | 201110121669.2 | 申请日: | 2011-05-11 |
公开(公告)号: | CN102724440A | 公开(公告)日: | 2012-10-10 |
发明(设计)人: | 蔡欢;郑培枫;刘衡娜;沈季 | 申请(专利权)人: | 新奥特(北京)视频技术有限公司 |
主分类号: | H04N5/278 | 分类号: | H04N5/278;G06T15/00 |
代理公司: | 北京挺立专利事务所(普通合伙) 11265 | 代理人: | 叶树明 |
地址: | 100195 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 三维 场景 实现 物体 旋转 操作 方法 | ||
技术领域
本发明涉及广电领域的字幕制作技术领域,尤其涉及一种三维场景中实现物体旋转操作的方法。
背景技术
在视频制作过程中对于图元的操作是避免不了的,然而在图元操作的过程中往往会对物体进行拖动旋转等操作。
现有技术中,在场景中当鼠标选中物体某个位置拖动或进行旋转时候,只能实现单一绕X轴,Y轴或Z轴旋转,不能实现拖动物体的球面包围盒进行旋转的效果,要实现一个空间姿态,一般需要经过绕X旋转,绕Y旋转,绕Z旋转三次拖拽操作,比较繁琐,且因需要经过三步操作才能看到结果,不能实时做调整。
发明人在实施本发明的过程中,发现现有技术存在以下技术问题:
(1)经过多次拖拽旋转物体才可以实现物体的任何一个空间姿态,操作繁琐;
(2)多步操作看到旋转结果不能实时调整。
发明内容
为了解决上述现有技术的缺点,本发明的主要目的是提供一种三维场景中实现物体旋转操作的方法以解决现有技术中不能实现三维场景中拖拽物体的球面包围盒改变物体的空间姿态,实现物体的旋转的技术问题。
为了达到上述目的,本发明提供了一种三维场景中实现物体旋转操作的方法,具体包括:
计算拖拽物体的起点和终点的三维空间向量;
计算所述物体起点到终点向量的旋转轴和旋转角度;
计算旋转矩阵及x,y,z方向的旋转角度。
本发明采用的三维场景中实现物体旋转操作的方法通过先计算起点与终点三维空间向量进而计算向量的旋转轴及旋转角度的方式可以计算出旋转矩阵及与x,y,z方向的旋转角度实现三维场景中拖拽物体的球面包围盒改变物体的空间姿态,实现物体的旋转。
附图说明
为了更清楚的说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见的,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一种三维场景中实现拖拽物体旋转操作的方法流程图;
图2为本发明实施例三维场景中实现拖拽物体旋转操作的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然所描述的实施例仅是本发明的一部分实施例,不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例一方面提供了一种三维场景中实现物体旋转操作的方法,如图1所示为本发明实施例三维场景中实现拖拽物体旋转球面效果的方法流程图,具体包括以下步骤:
步骤S1:计算拖拽物体的起点和终点在三维空间中的向量。首先由包围盒确定物体中心的屏幕坐标,然后根据拖拽前后的屏幕坐标计算相对物体中心的相对坐标记为ptFrom,ptTo。将上述拖拽前后的相对坐标转换为极坐标角度再转为三维向量,记为vecFrom,vecTo。
步骤S2:计算拖拽物体起点到终点向量的旋转轴和旋转角度。当vecFrom和vecTo长度之积flength不为0即拖拽有效的情况下计算vecFrom与vecTo的外积记为vCross并将此外积向量作为旋转轴。
计算vecFrom与vecTo的内积fDot,将fDot除以flength记为fcos;计算vecFrom与vecTo的外积vCross长度并除以flength记为fSin。通过fCos和fSin计算旋转角度。
通过fCos和fSin计算旋转角度具体步骤如下:
步骤S201:如果fSin大于等于1.0,旋转角度为90度;如果fSin小于等于-1.0,旋转角度为270度;如果不属于上述两种情况则执行步骤S202;
步骤S202:求fSin的反正弦角度arcsin(fSin),并将弧度转为角度记为fAngle;
步骤S203:如果fCos小于0,则将180-fAngle的值赋给fAngle以得到新的旋转角度;
步骤S204:如果fSin小于0,则将fAngle+360的值赋给fAngle得到新的旋转角度;
步骤S3:通过旋转轴和旋转角度计算旋转矩阵,通过旋转矩阵分解得到x,y,z方向的旋转角度,将这三个角度与旋转前物体空间中的xyz方向的角度分别相加,得到当前物体的旋转角度,实现物体的旋转。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于新奥特(北京)视频技术有限公司,未经新奥特(北京)视频技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110121669.2/2.html,转载请声明来源钻瓜专利网。