[发明专利]计算机图形中简单多边形的切环剖分方法无效

专利信息
申请号: 200910234276.5 申请日: 2009-11-16
公开(公告)号: CN101923502A 公开(公告)日: 2010-12-22
发明(设计)人: 钱敬平 申请(专利权)人: 东南大学
主分类号: G06F11/20 分类号: G06F11/20
代理公司: 南京经纬专利商标代理有限公司 32200 代理人: 黄雪兰
地址: 210096*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要: 计算机图形中简单多边形的切环剖分方法:1.连接多边形的第1顶点与多边形的外包菱形的4个顶点;对于多边形的第n顶点,n=1;2.令n=n+1,若第n顶点与第1顶点重合且第n-1顶点与第1顶点已连接为一条边,则执行3;否则,2.1.以自第n-1顶点至第n顶点的有向边为探头,若探头与某一附加边重叠,则删除重叠的附加边并进行共线处理,返回2;否则,2.2.若探头穿越某一附加边,则分别处理探头两侧的三条边并删除该附加边,重复2.2;若第n顶点与第1顶点重合,则分别处理探头两侧的三条边后执行3;若探头有前方共线顶点,则进行共线处理,否则进行常规处理;返回2;3.校正多边形的方向。
搜索关键词: 计算机 图形 简单 多边形 切环剖分 方法
【主权项】:
一种计算机图形中简单多边形的切环剖分方法,其特征在于:步骤1.1:建立XOY平面坐标,在待剖分的多边形的外部设置一个能够包容多边形的菱形,菱形的4个构造顶点的坐标分别是(a,0)、(0,a)、( a,0)与(0, a),a为实数,a大于水平尺度与竖直尺度之和,水平尺度为多边形的最小外包矩形的左侧或右侧X坐标的绝对值的较大者,竖直尺度为多边形的最小外包矩形的上侧或下侧Y坐标的绝对值的较大者;菱形构成一个环,环以逆时针方向为下游方向;以多边形上任一顶点作为第1顶点,逐一将第1顶点与菱形的4个构造顶点连接,将菱形分解为4个较小的环,作为起始的剖分集合;以多边形上与第1顶点相邻的两个顶点中任意一个作为第2顶点,假设以第1顶点与第2顶点顺序的走向为多边形的下游方向;步骤1.2:沿着多边形的下游方向逐个将第n顶点嵌入剖分集合,n=2,3,4,……,N,N+1,N为多边形的顶点个数,第N+1顶点与第1顶点重合;步骤1.3:如果按照第1顶点、第2顶点、第3顶点、……、第N顶点至第1顶点的顺序形成的多边形的走向是顺时针方向的,则对多边形的每个顶点进行方向逆转处理,即将原设定的上游相邻顶点修正为下游相邻顶点,将原设定的下游相邻顶点修正为上游相邻顶点;上述的将第n顶点嵌入剖分集合的方法是:步骤1.2.1:以自第n 1顶点至第n顶点的有向边为探头,若第n顶点与第1顶点不同,则执行步骤1.2.2;否则,若以第n 1顶点为起点的所有附加边中有一条附加边的终点是第1顶点时,则多边形闭合,将此附加边更新为多边形的边,嵌入结束,所述的附加边是由任意两个不相邻的顶点形成的有向边;否则,步骤1.2.2:以自第n 1顶点的位于探头右侧的第一条有向边为第1右首边,以第1右首边的下游边为第1链首,以探头的上游边为第1链尾,以i作为后续的计数器,i=1,若第一条位于第1右首边的左侧的附加边与探头重叠,则以此附加边的下游边为共线边,并删除重叠的附加边,执行步骤1.2.6;否则,步骤1.2.3:以第i链首、第i链尾分别作为第i链段的开头与结尾,所述的链段是一系列首尾衔接的有向边;若第i链段是单边形、凸链形或凹链形链段,则对第i链段进行链段夹挤确定探头对准边,并以所获得的对准边作为第i命中边,然后执行步骤1.2.5;若第i链段是左凹形,则执行步骤1.2.4;否则第i链段是右凹形,若探头与第i链尾的上游边相交,则以所述上游边作为第i命中边,执行步骤1.2.5,否则对以第i链首为链首、第i链尾的上游边为链尾的链段进行链段夹挤确定探头对准边,若存在对准边,则以对准边作为第i命中边,否则以第i链尾的上游边为第i命中边,然后执行步骤1.2.5;上述单边形链段的链尾是链首的下游边;上述凸链形链段的所有中间顶点的角度<π,所述链段的中间顶点是链段上介于链首的起点与链尾的起点之间的所有顶点,所述顶点的角度是链段上以此顶点为衔接的两条相邻的有向边左侧的夹角;上述凹链形链段的所有中间顶点的角度≥π;上述左凹形链段除链首的终点的角度<π,链段上的其余中间顶点的角度≥π;上述右凹形链段除链尾的上游边的起点的角度<π,链段上的其余中间顶点的角度≥π;步骤1.2.4:若探头与第i链首相交,则以第i链首为第i命中边,执行步骤1.2.5;否则,对以第i链首的下游边为链首、第i链尾为链尾的链段进行链段夹挤确定探头对准边,若存在对准边,则以对准边作为第i命中边,否则以第i链首作为第i命中边,步骤1.2.5:若第i命中边的起点与探头共线,则以第i命中边作为共线边,执行步骤1.2.6;否则,分别以第i右首边、第i链首和第i命中边作为起始边、中间边和终止边,以无界方式对探头的右侧进行三边连环,再分别以第i命中边的下游边、第i链尾和探头作为起始边、中间边和终止边,以无界方式对探头的左侧进行三边连环;以三边连环后的第i命中边的新的下游边为第i+1链尾,若探头与第i命中边相交,则以第i命中边的逆向边的下游边为第i+1链首,以探头的逆向边的下游边为第i+1右首边,删除第i命中边,以i+1作为新的i,重返步骤1.2.3;否则,对以探头的逆向边为链首、第i命中边为链尾的链段进行链段修正,将新连接的自第n顶点的附加边作为右翼边,再对以第i+1链尾为链首、右翼边为链尾的链段进行链段修正,将新连接的自第i+1链尾的起点的附加边作为左翼边;分别以右翼边的下游边、左翼边和右翼边的上游边作为起始边、中间边和终止边,以无界方式对探头的前方进行三边连环从而确保探头的前方是三角形,嵌入结束;上述的链段修正的方法是:若链段是凸链形,则以链首为起环边、链尾为止环边进行双边连环,否则若链段是左凹形,则对以链首的下游边为新链首,链尾为新链尾所构成的新链段进行自上方式的凹链顺延使之变为单边形或凹链形,否则若链段是右凹形,则对以链首为新链首,链尾的上游边为新链尾的新链段进行自下方式的凹链顺延使之变为单边形或凹链形;结束链段修正;上述的双边连环的方法是:以止环边的上游边为环内边,连接起环边的起点与止环边的起点,以所形成的附加边作为封口边;若起环边是一条附加边且起环边足够长,且起环边的两侧的两个环在起环边被删除的情况下可以形成一个较大的凸环或在起环边的终点不是第1顶点的前提下形成一个较大的凹环,则可以删除起环边;同理,若环内边也是附加边且环内边足够长,且环内边的两侧的两个环在环内边被删除的情况下可以形成一个较大的凸环或在环内边的起点不是第1顶点的前提下形成一个较大的凹环,则可以删除环内边;双边连环结束;上述的起环边足够长是指起环边的长度至少是起环边的终点至止环边的起点的距离的一半或起环边的长度至少是封口边的长度的一半;上述的环内边足够长是指环内边的长度至少是起环边的起点至环内边的起点的距离的一半或环内边的长度至少是封口边的长度的一半;上述的凸环指的是在环内的所有顶点的角度<π;上述的凹环指的是在环内除了仅有三个相邻的顶点的角度<π,其余所有顶点的角度≥π;步骤1.2.6:分别以第i右首边、第i链首和共线边作为起始边、中间边和终止边,以有界方式对探头的右侧进行三边连环,再分别以共线边、第i链尾和探头作为起始边、中间边和终止边,以有界方式对探头的左侧进行三边连环,若共线顶点有下游方向新的附加边,则以此附加边作为后续的共线边;若第n顶点与第i命中边的起点重合,则第n顶点返至第1顶点而多边形闭合,协调探头与共线边的位置关系,嵌入结束;否则,对以探头逆向边的下游边为链首、共线边为链尾的链段获取中部边并作为右中边,然后以探头的逆向边为起环边、右中边为止环边进行双边连环,并连接第n顶点与共线顶点作为接续边,上述有向边的逆向边是端点与所述有向边相同而方向与其相反的边;对以共线边为链首、探头为链尾的链段获取中部边并作为左中边,以左中边为起环边、接续边为止环边进行双边连环,嵌入结束;上述的对链段获取中部边的方法是:若链段为左凹形,则以链尾的上游边为中部边,并以链首为起环边、中部边为止环边进行双边连环,获取结束;否则若链首的下游边是链尾的上游边,则以链首的下游边为中部边,获取结束;否则以链首的下游边为起环边、链尾为止环边进行双边连环,以双边连环后链首的新的下游边为中部边,获取结束;上述的三边连环的方法是:步骤1.2.5.1:对以起始边为链首、中间边为链尾的链段进行链段修正,若修正后起始边的起点位置有新的附加边,则以新的附加边作为新始边,否则以起始边为新始边;再对以中间边为链首、终止边为链尾的链段进行链段修正,若修正后中间边的起点位置有新的下游方向的附加边,则以所述附加边作为新中边,否则以中间边为新中边;若起始边与中间边相同或中间边与终止边相同或新中边起点的角度≥π则结束;若两次修正结果都是凹链形,则执行步骤1.2.5.2;否则,若三边连环方式是有界方式,则结束;否则是无界方式,若两次修正结果都是单边形,则以新始边为起环边、终止边为止环边进行双边连环,结束;若前一次修正结果是单边形,后一次修正结果是凹链形,对以新中边为链首、终止边为链尾的链段进行自上方式的凹链顺延,结束;否则,前一次修正结果是凹链形,后一次修正结果是单边形,对以新始边为链首、新中边为链尾的链段进行自下方式的凹链顺延,结束;步骤1.2.5.2:以新中边为第1奇折边,新始边的起点为上端点,终止边的起点为下端点,j为循环计数器,j=1,进行两个凹链的交替顺延处理;步骤1.2.5.3:若三边连环是无界方式,且第j轮奇折边的起点是下端点或第j轮奇折边起点的角度≥π,结束;若三边连环是有界方式且第j轮奇折边的上游边的起点是上端点则结束;否则对以第j轮奇折边为链首、终止边为链尾的链段,以自上方式进行凹链顺延,并以新连接的附加边作为第j轮偶折边;步骤1.2.5.4:若三边连环是无界方式,且第j轮偶折边的起点是上端点或第j轮偶折边起点的角度≥π,结束;若三边连环是有界方式且第j轮偶折边的下游边的起点是下端点则结束;否则对以新始边为链首、第j轮偶折边为链尾的链段,以自下方式进行凹链顺延,并以新连接的附加边的下游边作为第j+1轮奇折边;以j+1作为新一轮的j,执行步骤1.2.5.3;上述的凹链顺延的方法是:若是自上方式的顺延,则以链首的上游边为观察边,否则以链尾的下游边为观察边;以观察边的起点为观察点,进行链段夹挤确定观察点的可见范围,并以可见范围的上游起始位置的有向边作为上游类切边,可见范围的下游终止位置的有向边的下游边作为下游类切边;对于自上方式的顺延,以观察边为起环边、下游类切边为止环边进行双边连环,对于自下方式的顺延,则以上游类切边为起环边、观察边为止环边进行双边连环;双边连环后,若止环边的上游边的起点与起环边的起点相同,则自起环边的起点至止环边的起点新构成的链段是单边形,否则是凹链形。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/200910234276.5/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top