平面任意多边形间相互变形方法

文档序号:6481599阅读:381来源:国知局
专利名称:平面任意多边形间相互变形方法
技术领域
本发明涉及平面图形的变形技术,尤其涉及一种平面任意多边形间相互变 形方法。
背景技术
目前,平面任意多边形间相互变形的方法很多,但都需要找初始多边形和 终结多边形的顶点的相应关系,在建立了顶点对应关系后,再对顶点运动路径 作插值。这种找对应点的过程本身就有人为主观性,尤其是在初始和终结两个 多边形顶点数目不一致的情况下,因为需要人为的插入顶点,所以其主观性更 为明显。

发明内容
为了克服现有技术存在的不足,本发明的目的在于提供一种降低人为主观 性的平面任意多边形间相互变形方法。 本发明是通过以下技术方案实现的
一种平面任意多边形间相互变形方法,其特征在于包括以下几个步骤
① 输入初始多边形和终结多边形的顶点,并对输入的多边形进行统一化处
理;
② 找出初始多边形和终结多边形中各特征点,将不同的多边形按照左上、 中上、右上、左下、中下、右下、左中、右中分成8段,并建立初始多边形与
终结多边形在各区域中的对应关系;
③ 分别判断初始多边形和终结多边形在同一段内是折线或点,进行相应的 变形,计算并记录每个点每一帧在初始多边形和终结多边形中的运动距离,将
这些点加入到终结多边形数组中,转到下一段;
④ 依次判断各段交界点每帧运动距离是否完全相同,如果相同则删除其中 任一点;⑤依次连接终结多边形的每一个点,绘制终结多边形。
前述的平面任意多边形间相互变形方法,其特征在于在所述的步骤③中, 如果判断初始多边形和终结多边形在同一段中都为折线,则进行折线与折线之 间的变形计算初始多边形和对应区域内的终结多边形各自段内折线上的各个 点沿折线到这个区域起始点的距离与整段折线的总长的比值,将比值从小到大 排序,然后用排序后的比值找到初始多边形折线上具有这些比值的点在终结多 边形上的位置,以及终结多边形折线上具有这些比值的点在初始多边形上的位 置,计算并记录每个点每一帧的运动距离,将这些点加入到终结多边形数组中, 转到下一段。
前述的平面任意多边形间相互变形方法,其特征在于在所述的步骤③中,如果 判断在同一段内初始多边形仅有一个点而终结多边形是一段折线,则进行单点 与折线之间的变形在初始多边形中插入"终结多边形该段内折线顶点数-l" 个初始顶点,这些点为多个重合点,使初始多边形在该段具有与终结多边形该 段折线上的顶点数相同的点数,插值出重合点与折线上各个点的中间位置,计 算并记录每个点每一帧的运动距离,将这些点加入到终结多边形数组中,转到 下一段。
前述的平面任意多边形间相互变形方法,其特征在于在所述的步骤③中,如果 判断初始多边形为折线,而对应区域内的终结多边形为单点,则使初始多边形 折线上的每一个点都对应终结多边形相应折线上的单点,计算并记录每个点每 一帧的运动距离,将这些点加入到终结多边形数组中,转到下一段。
前述的平面任意多边形间相互变形方法,其特征在于在所述的步骤③中,如果 判断初始多边形和对应区域内的终结多边形都为单点,则进行单点与单点之间 的变形,插值两点之间的中间点,计算并记录每个点每一帧的运动距离,将这 些点加入到终结多边形数组中,转到下一段。
前述的平面任意多边形间相互变形方法,其特征在于所述的统一化处理,首先 找到初始多边形和终结多边形中X坐标最大点中Y坐标最大的点,然后沿顺时 针方向,点的序号依次增加;最后计算这一点和前一点的矢量值、这一点与后
一点矢量值,叉乘这两个矢量值,如果结果小于o,序号是按照顺时针方向勾勒出的,不用改变顺序,如果结果不小于o,则要改变终结多边形数组中的点的顺序。
前述的平面任意多边形间相互变形方法,其特征在于在所述的步骤②中,对初 始多边形和终结多边形进行分段时,整个多边形被看作是嵌入在矩形中,且多
边形上所有的极值点都位于该矩形上,这些极值点分别为X坐标最小点中Y坐
标最小点、X坐标最小点中Y坐标最大点、Y坐标最大点中X坐标最小点、Y坐 标最大点中X坐标最大点、X坐标最大点中Y坐标最大点、X坐标最大点中Y坐 标最小点、Y坐标最小点中X坐标最大点、Y坐标最小点中X坐标最小点,相邻 极值点之间的区域形成一段折线,多边形由按照左上、中上、右上、左下、中 下、右下、左中、右中分成的8段折线组合而成。
本发明的有益效果是本发明可自动对多边形进行分段,并建立段与段之 间的对应关系,并且可根据总的帧数、各个区域内多边形的对应情况自动插值 中间结果,因此避免了人为的主观性,具有精度高,效率高的特性。


图1是本发明的初始多边形和终结多边形的分段示意图; 图2是本发明的各点的比例值计算示意图; 图3是本发明的某些段内仅有单个点的初始多边形示意图。
具体实施例方式
下面结合附图对本发明作进一步说明
图1为是本发明的初始多边形和终结多边形的分段示意图;图2为是本发 明的各点的比例值计算示意图;图3为是本发明的某些段内仅有单个点的初始 多边形示意图。
本发明的平面任意多边形间相互变形方法包括以下步骤 (1)输入初始多边形和终结多边形的顶点Pi(i = 0, 1,……n), Qj(j二0, 1,……m),对输入的多边形进行统一化处理,如图1所示,设B点为第1号点, 沿顺时针方向点的序号依次增加。具体是先找到初始和终结多边形中X坐标最 小点中Y值最大的点,再计算这一点和前一点的矢量值^》,这一点和下一点的 矢量值C^,叉乘这两个矢量值^^XCS,如果结果小于0,说明是顺时针勾勒出的,不用改变顺序,仅使B点为第1号点。否则,同时还要改变多边形数组中 点的顺序。
(2)找出初始多边形和终结多边形各特征点A、 B、 C、 D、 E、 F、 G、 H,将 初始多边形和终结多边形分段。并记录下这些特征点在统一化后的多边形中的 序号,并建立各区域初始多边形折线与终结多边形折线的对应关系。
即如图1所示整个初始多边形和终结多边形被看作是嵌入在如图1所示 的各自的矩形中,所述矩形具有的性质是多边形上所有的极值点都位于该矩 形上。这些极值点分别是X坐标最小点中Y坐标最小点一~A点、X坐标最小 点中Y坐标最大点——B点、Y坐标最大点中X坐标最小点——C点、Y坐标最 大点中X坐标最大点——D点、X坐标最大点中Y坐标最大点——E点、X坐标 最大点中Y坐标最小点——F点、Y坐标最小点中X坐标最大点——G点、Y坐 标最小点中X坐标最小点——H点。通过对输入的初始、终结多边形进行统一化, 使A点为索引号的第0点,则多边形上任何一个点的索引号即可确定下来。
初始和终结多边形又可以看成是由所有的极值点分割而成的多段折线的组 合,且所有的折线都位于如图1所示的0到7号段中(左下角是第0段,段号 随着顺时针方向递增)。那么多边形的变形是八段初始多边形折线变形成相应区 域内的八段终结多边形折线的过程。
(3)变形过程包括单点或折线与单点或折线之间的变形。具体为-
①折线与折线之间的变形过程
对于任一个区域内的折线的变形过程可以将其视为一段弹性绳的变形过 程。该绳有这样的特点1、原始长度无限小;2、可以拉伸成任意长度。以图2 为例。要使该折线从AG变成A、、可以先找到B、 C、 D、 E、 F这些原始点沿折 线到首点的长度,然后用这些长度除以折线的总长度,得到一个比值r,这个 比值就确定了该点在整条折线的位置,B、 C、 D、 E、 F点沿折线到A点的距离除 以初始折线的总长度,H点沿折线到Az点的距离除以终结多边形折线的总长度。 有了这个比值我们就可以建立B、 C、 D、 E、 F点在终结折线上的位置和H点在 初始多边形折线上的位置。
对首末点A、 G运动到A^ G'点可以认为是这样一个过程0运动到C/点的
7运动过程叠加上矩形的X、 Y縮放比例Xsde、 YScale,其中:
XScaie=L, /L YScale=W, /W
用矩阵表示如下
(X',Y')=[(X,Y)+(-X0'-Y0)]
Xscale Yscale
+ [X0',Yd
(1)
其他点的运动还要叠加上AX, AY,现以B点为例,其中
其中Xb"、 Yb"是将B点的X、 Y坐标代入式(l)而求得的。显然B:点的坐标是 (XB +AX, YB"+AY)。以上变形过程是将变形设为仅有一帧。如果把这个过程分 成n帧,那么A、 G点在第i帧(l《i《n)的位置可由式(l)变成式(2),艮卩
(Xi,Yi)=[(XY)+(-X0,-Y0)]
ixXscale/n
ixYsCaie/n
(2)
折线上的其他点在第i时刻的坐标可以表示为Xi+iX AX/n、Yi+iX AY/n 。 当i=n时,就实现了以上的整个变形过程。
通过观察发现折线上任意一点在任意一帧的位置与帧数呈线性关系,推导 如下对首末点,第i帧X、 Y坐标是
Xi = (X-X。)xXscaie x i/n、 Yi = (Y-Y。)x Yscale x i/n
对其他点,第i帧X、 Y坐标是
Xi=((X-X0)xXscaie + AX)x i/n、 Yi =((Y-Y0)xYscaie + AY)x i/n
因为(X-Xo)xXscale/n、 AX、 (Y-Yo)xYscale/n 、 AY均为常数,所以折线
上任意一点在第i帧的坐标与帧数呈线性关系,则任意一点在第i帧的位置我 们可以通过插值该点的首末位置而得到,即可简化为 (l一i/n)xX+i/nxX'、 (1—i/n)x Y+i/nX Y' (3)
那么整个这一段折线上的所有的点(A、 B、 C、 D、 E、 F、 G、 H)在从初始形 状变到终结形状的过程中的任意一个时刻的位置即可确定下来,只要依次连接
8这些点该折线的形状即可确定下来。
② 初始多边形的单点与终结多边形的折线之间的变形
在某些情况下,在初始多边形的某些段内可能并没有完整的折线,而仅有
一个点,如图3所示,AABC在1、 3、 5、 6、 7段内仅有一个点,如果该多边形 要变形成图1所示的终结多边形,那么AABC在这些段内的点就要变成折线。最 简单的方法是增加该段内的点,在初始多边形中插入"终结多边形该段内折线 顶点数-l"个初始顶点,使该区域内的点的数量与终结多边形数量相当,显然 所有这些点的位置都相同。然后插值出重合点与折线上各个点的中间位置,找 出这些点与终结多边形的对应关系,则每一点在第i帧的X、 Y坐标也可由式(3)
表示出来。这就实现了点与折线之间的变形。
③ 初始多边形的折线与终结多边形的单点之间的变形
如果初始多边形在某个段内是折线,而在终结多边形对应的该段内仅是一 个点,那么可以使初始多边形的折线上的所有的点与终结多边形的这一个点建 立对应关系,再用式(3)确定这些点在第i帧的X、 Y坐标。
④ 单点与单点之间的变形
如果初始多边形和终结多边形在对应的段内都为单点,则简单插值两点之 间的中间点即可。
然后对各对应区域内依次进行变形。
(4) 依次判断各段交界点每帧运动距离是否完全相同,如果相同删除其中 任一点。
(5) 依次连接终结多边形的每一个点,绘制终结多边形。 以上己以较佳实施例公开了本发明,然其并非用以限制本发明,凡采用等
同替换或者等效变换方式所获得的技术方案,均落在本发明的保护范围之内。
权利要求
1、一种平面任意多边形间相互变形方法,其特征在于包括以下几个步骤①输入初始多边形和终结多边形的顶点,并对输入的多边形进行统一化处理;②找出初始多边形和终结多边形中各特征点,将不同的多边形按照左上、中上、右上、左下、中下、右下、左中、右中分成8段,并建立初始多边形与终结多边形在各区域中的对应关系;③分别判断初始多边形和终结多边形在同一段内是折线或点,进行相应的变形,计算并记录每个点每一帧在初始多边形和终结多边形中的运动距离,将这些点加入到终结多边形数组中,转到下一段;④依次判断各段交界点每帧运动距离是否完全相同,如果相同则删除其中任一点;⑤依次连接终结多边形的每一个点,绘制终结多边形。
2、 根据权利要求1所述的平面任意多边形间相互变形方法,其特征在于在 所述的步骤③中,如果判断初始多边形和终结多边形在同一段中都为折线,则 进行折线与折线之间的变形计算初始多边形和对应区域内的终结多边形各自 段内折线上的各个点沿折线到这个区域起始点的距离与整段折线的总长的比 值,将比值从小到大排序,然后用排序后的比值找到初始多边形折线上具有这 些比值的点在终结多边形上的位置,以及终结多边形折线上具有这些比值的点 在初始多边形上的位置,计算并记录每个点每一帧的运动距离,将这些点加入 到终结多边形数组中,转到下一段。
3、 根据权利要求1所述的平面任意多边形间相互变形方法,其特征在于在所述的步骤③中,如果判断在同一段内初始多边形仅有一个点而终结多边形是一段折线,则进行单点与折线之间的变形在初始多边形中插入"终结多边形该段内折线顶点数-1"个初始顶点,这些点为多个重合点,使初始多边形在该 段具有与终结多边形该段折线上的顶点数相同的点数,插值出重合点与折线上各个点的中间位置,计算并记录每个点每一帧的运动距离,将这些点加入到终结多边形数组中,转到下一段。
4、 根据权利要求1所述的平面任意多边形间相互变形方法,其特征在于在 所述的步骤③中,如果判断初始多边形为折线,而对应区域内的终结多边形为 单点,则使初始多边形折线上的每一个点都对应终结多边形相应折线上的单点, 计算并记录每个点每一帧的运动距离,将这些点加入到终结多边形数组中,转 到下一段。
5、 根据权利要求1所述的平面任意多边形间相互变形方法,其特征在于在 所述的步骤③中,如果判断初始多边形和对应区域内的终结多边形都为单点, 则进行单点与单点之间的变形,插值两点之间的中间点,计算并记录每个点每 一帧的运动距离,将这些点加入到终结多边形数组中,转到下一段。
6、 根据权利要求1所述的平面任意多边形间相互变形方法,其特征在于所 述的统一化处理,首先找到初始多边形和终结多边形中X坐标最小点中Y坐标 最大的点,然后沿顺时针方向,点的序号依次增加;最后计算这一点和前一点 的矢量值、这一点与后一点矢量值,叉乘这两个矢量值,如果结果小于0,序号 是按照顺时针方向勾勒出的,不用改变顺序,如果结果不小于0,则要改变终结 多边形数组中的点的顺序。
7、 根据权利要求1所述的平面任意多边形间相互变形方法,其特征在于在 所述的步骤②中,对初始多边形和终结多边形进行分段时,整个多边形被看作 是嵌入在矩形中,且多边形上所有的极值点都位于该矩形上,这些极值点分别 为X坐标最小点中Y坐标最小点、X坐标最小点中Y坐标最大点、Y坐标最大 点中X坐标最小点、Y坐标最大点中X坐标最大点、X坐标最大点中Y坐标最大 点、X坐标最大点中Y坐标最小点、Y坐标最小点中X坐标最大点、Y坐标最小 点中X坐标最小点,相邻极值点之间的区域形成一段折线,多边形由按照左上、 中上、右上、左下、中下、右下、左中、右中分成的8段折线组合而成。
全文摘要
本发明公开了一种平面任意多边形间相互变形方法,其特征在于将多边形分为多段折线,按照多边形顶点在所处折线上的比例建立初始多边形与终结多边形的对应关系,包括多边形的分段、折线与折线之间的变形、单点与折线之间的变形,最后插值出终结多边形。本发明可自动对多边形进行分段,并建立段与段之间的对应关系,并且可根据总的帧数、各个区域内多边形的对应情况自动插值中间结果,因此避免了人为的主观性,具有精度高,效率高的特性。
文档编号G06T3/00GK101527032SQ200910029210
公开日2009年9月9日 申请日期2009年4月3日 优先权日2009年4月3日
发明者粲 唐, 张建伟, 胜 程, 淳 龚 申请人:昆山市工业技术研究院有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1