专利名称:一种场景中拖拽物体包围盒顶点或边的可行性判断方法
技术领域:
本发明涉及广电领域的字幕制作技术领域,尤其涉及一种场景中拖拽物体包围盒顶点或边的可行性判断方法。
背景技术:
在视频制作过程中对于图元的操作是避免不了的,然而在图元操作的过程中往往会因为拖拽不当使物体形状异常。物体控制器是在图元创作过程中在活动窗口中使用鼠标拖拽改变物体空间姿态的用户界面工具。现有的控制器中由于拖拽没有限制,使得在经过控制器拖拽后,反算物体的结构时出现计算错误,根据拖拽后的数据重建物体时引起物体形状的异常。 发明人在实施本发明的过程中发现现有技术存在以下技术问题(I)缺少可行性判断容易造成拖拽物体使物体形状异常;(2)未作可行性判断,拖拽位置不正常的时候计算开销大。
发明内容
为了解决上述现有技术的缺点,本发明的主要目的是提供一种场景中拖拽物体包围盒顶点或边的可行性判断方法,以解决现有技术中物体控制器使用鼠标拖拽改变物体姿态时造成物体形状的异常的技术问题。为了达到上述目的,本发明提供了一种场景中拖拽物体包围盒顶点或边的可行性判断方法,具体包括鼠标检测是否选中包围盒某个顶点或某一边;根据鼠标拖拽的屏幕位置计算所述顶点或边在三维空间中的位置;确定鼠标拖拽的顶点或边不能逾越的平面或直线;针对所述确定的平面或直线分别判断所拖拽的顶点或边是否超越所述平面或直线。本发明的一种场景中拖拽物体包围盒顶点或边的可行性判断方法,通过判断拖拽的顶点是否超越平面或者直线的方式可以判断拖拽物体的可行性,避免拖拽物体不当造成物体形状的异常。
为了更清楚的说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见的,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I为本发明实施例一种场景中拖拽物体包围盒顶点或边的可行性判断方法流程图2为本发明实施例的针对二维物体拖拽包围盒顶点可行性判断方法的详细流程图;图3为本发明实施例拖拽二维物体示意图;图4为本发明实施例拖拽三维物体示意图;图5为本发明实施例三维物体包围盒拖拽顶点可行性判断的方法流程图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然所描述的实施例仅是本发明的一部分实施例,不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例一方面提供了一种场景中拖拽物体包围盒顶点或边的可行性的判断方法。图元操作过程中避免不了会对三维物体或二维物体进行拖拽,针对三维物体与二维物体拖拽过程顶点或边的可行性判断的方法如图I所示,具体为步骤SI :鼠标检测是否选中包围盒的某个顶点或某一边。对于二维物体选中包围盒的四个顶点之一,三维物体选中包围盒的八个顶点之一。步骤S2 :根据鼠标拖拽的屏幕位置计算所述拖拽的顶点或边在三维空间中的位置。步骤S3 :确定鼠标所拖拽的顶点或边不能逾越的相应的平面或直线。步骤S4 :针对所述确定的平面或直线分别判断所拖拽的顶点或边是否超越所述平面或直线。步骤S5 :进行误差判断。计算拖拽的当前点或平面与所述不能超越的平面或直线间的最近距离,如果小于某一确定的值,拖拽无效。本发明的一种场景中拖拽物体包围盒可行性的判断方法,通过判断拖拽的顶点是否超越平面或者直线的方式可以判断拖拽物体的可行性,避免拖拽物体不当造成物体形状的异常。本发明的以下实施例将分别针对二维物体与三维物体进行拖拽包围盒顶点或边的可行性判断的方法进行详细的说明,图2为本发明实施例的针对二维物体拖拽包围盒顶点可行性判断方法的详细流程图,以图3所示拖拽二维物体为例进行详细说明,拖拽物体顶点3的时候不能逾越的直线为01与02,具体为步骤SI :鼠标检测是否选中包围盒的四个顶点之一,如果选中则进行步骤S2。步骤S2 :根据鼠标拖拽的屏幕位置计算所述选中的顶点在三维空间中的位置。步骤S3 :除拖拽的顶点之外的其他三个点按顺时针顺序记为ptl,pt2,pt3。拖拽前后的点分别记为ptOld, PtNew0 ptl, pt2连成的直线linel, pt2, pt3直线连成的line2作为所拖拽的顶点不能逾越的直线。步骤S4 :判断拖拽的顶点是否超越所述Iinel与line2。需要判断,拖拽前后的点是否还在ptl, pt2连成的直线Iinel与pt2, pt3直线连成的line2的同侧。具体步骤为S401 :计算ptOld, ptNew分别与三个参考点之差得到的向量,veclOld, vec201d,vec301d,veclNew, vec2New, vec3New。
S402 :分别计算 veclOld 与 veclNew, vec201d 与 vec2New, vec301d 与 vec3New 的内积,fDotl, fDot2 与 fDot3。S403 :如fDotl,fDot2,fDot3中任何一个值小于0,表示拖拽无效;S404 :误差考虑拖拽后的点离Iinel或line2距离小于5,认为重合表示拖拽无效。对于拖拽二维物体包围盒的边的情况与拖拽某一顶点的方法步骤一样,只是不能逾越的直线是一个,在此不再赘述。本发明的实施例三将针对场景中三维物体拖拽包围盒顶点或边的可行性判断的方法,以图4所示的三维物体包围盒进行拖拽顶点为例进行详细说明,图4中拖动顶点1,为保证再度计算球体时的合理性,控制顶点I不能逾越背面456,不能逾越左面034,不能逾越底面236。 如图5所示为三维物体包围盒拖拽顶点可行性判断的方法流程图。步骤SI :判断鼠标检测是否选中包围盒的八个顶点之一,如否,不进行下述计算。步骤S2 :如果选中其中的一个顶点,比如选中顶点I则根据鼠标拖拽的屏幕位置计算所述选中的顶点在三维空间中的位置。步骤S3 :确定鼠标拖拽的顶点I不能逾越的三个相应平面,拖拽顶点不能逾越的平面是六个平面中不包含所述顶点的平面背面456,左面034,底面236,每个平面用三个顶点来表示。步骤S4 :针对S3中的三个平面(背面456,左面034,底面236)依次判断顶点I是否超越该平面,用顶点ptl, pt2, pt3来表示这个平面,具体步骤如下S41 :根据 ptl, pt2, pt3 确定平面的方程 planel。S42 :计算鼠标拖拽前的顶点I与planel平行的平面方程plane2。S43 :计算鼠标拖拽当前的顶点I与planel平行的平面方程plane3。S44 :通过平面方程判断plane2与plane3是否位于planel的同侧,如是则拖拽有效,否则无效。S45 :误差考虑计算拖拽当前点离planel的最近距离,如果小于5,认为此点与平面已重合,拖拽无效。步骤S4是分别对步骤S3的三个平面依次做判断,也就是S4步骤会执行三次,每次的planel分别是背面456,左面034,底面236。针对拖拽三维物体包围盒的边的情况与拖拽顶点的方法步骤类似,只是拖拽顶点时候不能逾越的平面是三个,对于拖拽某一边时不能逾越的平面是两个,因此再次不再赘述。本发明的一种场景中拖拽物体包围盒可行性的判断方法,通过判断拖拽的顶点是否超越平面或者直线的方式可以判断拖拽物体的可行性,避免拖拽物体不当造成物体形状的异常。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是⑶-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。以上所述,仅为本发明的一个最佳具体实施例,但本发明的特征并不局限于此,任何熟悉该项技术的人在本发明领域内,可轻易想到的变化或修饰,都应涵盖在 以下本发明的申请专利范围中。
权利要求
1.一种场景中拖拽物体包围盒顶点或边的可行性判断方法,其特征在于,具体包括 鼠标检测是否选中包围盒某个顶点或某一边; 根据鼠标拖拽的屏幕位置计算所述顶点或边在三维空间中的位置; 确定鼠标拖拽的顶点或边不能逾越的平面或直线; 针对所述确定的平面或直线分别判断所拖拽的顶点或边是否超越所述平面或直线。
2.如权利要求I所述的场景中拖拽物体包围盒顶点或边的可行性判断方法,其特征在于,所述拖拽的物体包括二维物体和三维物体。
3.如权利要求I所述的场景中拖拽物体包围盒顶点或边的可行性判断方法,其特征在于,所述拖拽的物体为二维物体的时候确定不能逾越的直线是除拖拽的顶点之外的其他三个顶点按顺时针顺序两个相邻顶点连成的直线。
4.如权利要求3所述的场景中拖拽物体包围盒顶点或边的可行性判断方法,其特征在于,所述拖拽物体为二维物体时确定不能逾越的直线的数量为 拖拽二维物体的一个顶点时所述不能逾越的直线为两条; 拖拽二维物体的一个边时所述不能逾越的直线为一条。
5.如权利要求I所述的场景中拖拽物体包围盒顶点或边的可行性判断方法,其特征在于,拖拽二维物体时判断拖拽顶点或边是否超越不能逾越的直线的方法为判断拖拽的顶点或边是否在所述相邻两定点连成直线的同侧。
6.如权利要求5所述的场景中拖拽物体包围盒顶点或边的可行性判断方法,其特征在于,所述判断拖拽的顶点或边是否在所述相邻两定点连成直线的同侧的方法具体为 分别计算拖拽前后的顶点与参考点的差向量; 分别计算拖拽顶点的拖拽前后差向量的内积; 判断所述计算的拖拽前后差向量的内积值的大小,如果所述拖拽前后差向量的内积值中任何一个值小于O表示拖拽无效;如果拖拽后的顶点距离不能逾越的直线的任何一条距离小于5,认为重合表不拖拽无效。
7.如权利要求I所述的场景中拖拽物体包围盒顶点或边的可行性判断方法,其特征在于,所述拖拽的物体为三维物体的时候确定不能逾越的平面是六个平面中不包含所述顶点或边以及组成所述边的两个顶点的平面。
8.如权利要求7所述的场景中拖拽物体包围盒顶点或边的可行性判断方法,其特征在于,所述拖拽物体为三维物体时确定不能逾越的平面的数量为 拖拽三维物体的一个顶点时所述不能逾越的平面为三个; 拖拽三维物体的一个边时所述不能逾越的平面为两个。
9.如权利要求I所述的场景中拖拽物体包围盒顶点或边的可行性判断方法,其特征在于,所述拖拽物体为三维物体的时候判断是否超越所述平面的方法为 根据顶点确定不能逾越的平面的方程; 计算拖拽前的顶点与所述确定的不能逾越的平面平行的平面方程; 计算拖拽后的顶点与所述确定的不能逾越的平面平行的平面方程; 判断所述计算得到的与拖拽前后顶点不能逾越的平面平行的平面方程是否在所述确定的不能逾越的平面的方程的同侧,如果在同侧则表示拖拽无效;如果拖拽的顶点距离所述不能逾越的平面的方程的最近距离小于5,所述拖拽的顶点与平面重合表示拖拽无效。
全文摘要
本发明公开了一种场景中拖拽物体包围盒顶点或边的可行性判断方法。包括鼠标检测是否选中包围盒某个顶点或某一边;根据鼠标拖拽的屏幕位置计算所述顶点或边在三维空间中的位置;确定鼠标拖拽的顶点或边不能逾越的平面或直线;针对所述确定的平面或直线分别判断所拖拽的顶点或边是否超越所述平面或直线。进而能够有效的判断所述拖拽的顶点或边是否有效是否可行,以避免拖拽物体包围盒顶点或边的时候,反算物体结构时引起物体形状的异常。
文档编号H04N5/262GK102736836SQ20111011638
公开日2012年10月17日 申请日期2011年5月6日 优先权日2011年5月6日
发明者孙季川, 张君琦, 蔡欢, 郑培枫 申请人:新奥特(北京)视频技术有限公司