一种二维多边形图元的矩形视窗剪裁绘图方法技术

技术编号:28561570 阅读:58 留言:0更新日期:2021-05-25 17:56
本发明专利技术提供了一种二维多边形图元的矩形视窗剪裁绘图方法,属于计算机图形学技术领域。本发明专利技术通过选取多边形第一个内部点为起点,逐次遍历分析多边形各边与矩形视窗边界的空间关系,得到矩形视窗内多边形的边界点,从而裁剪掉无效区域、降低绘图时空复杂度。本发明专利技术适用于任意凹、凸多边形被矩形视窗裁剪的情况,可用于地质、工业与建筑等大尺度制图软件的高效绘图,具有较高的时空效率。

【技术实现步骤摘要】
一种二维多边形图元的矩形视窗剪裁绘图方法
本专利技术涉及计算机图形学
,尤其涉及一种二维多边形图元的矩形视窗剪裁绘图方法。
技术介绍
多边形裁剪算法被广泛应用于计算机图形学、地理信息系统等领域,是计算机图形学许多重要问题的基础,其主要目的是裁剪掉被裁减多边形(又称实体多边形)位于裁剪多边形之外的部分。计算机绘图时需要针对当前窗口显示区域对多边形进行裁剪,得到重合区域的多边形进而填充,以节省绘图的时空复杂度,提高绘图效率。在中国专利申请文献CN103034968A中,公开了一种剪裁二维矢量图形的方法,适用于具有遮罩功能的二维矢量图形硬件加速器,此方法包括以下步骤:决定至少一剪裁矩形且将每一剪裁矩形转换成相应于其矩形边缘的矢量图形路径;储存每一个矢量图形路径;设定相应于一显示区域的多个遮罩值,在显示区域中被所述矢量图形路径包围区域的遮罩值设定为非零值,显示区域中非包围区域的遮罩值设定为零值;使能二维矢量图形硬件加速器的遮罩功能,原始图像通过多个遮罩值的帧缓冲而产生相应于显示区域的一新图片;以及描绘新图片于显示区域。该方案仅适用于具有遮本文档来自技高网...

【技术保护点】
1.一种二维多边形图元的矩形视窗剪裁绘图方法,其特征在于,包括如下步骤:空间关系确定步骤,/nS1000:输入多边形的顶点坐标数据集A’和矩形视窗的坐标数据;/nS2000:创建搜索循环链表A和重合区域顶点集B;/nS3000:为多边形的顶点和多边形各边、矩形视窗的顶点和矩形视窗的各边编号,将所述多边形顶点坐标数据集A’中各顶点依次存入搜索循环链表A;/nS4000:根据所述多边形的各顶点与所述矩形视窗的相对位置,得到所述多边形与所述矩形视窗的空间关系,所述空间关系为如下关系中的一种:/n第一种空间关系:所述多边形完全包含所述矩形视窗;/n第二种空间关系:所述矩形视窗完全包含所述多边形;/n第...

【技术特征摘要】
1.一种二维多边形图元的矩形视窗剪裁绘图方法,其特征在于,包括如下步骤:空间关系确定步骤,
S1000:输入多边形的顶点坐标数据集A’和矩形视窗的坐标数据;
S2000:创建搜索循环链表A和重合区域顶点集B;
S3000:为多边形的顶点和多边形各边、矩形视窗的顶点和矩形视窗的各边编号,将所述多边形顶点坐标数据集A’中各顶点依次存入搜索循环链表A;
S4000:根据所述多边形的各顶点与所述矩形视窗的相对位置,得到所述多边形与所述矩形视窗的空间关系,所述空间关系为如下关系中的一种:
第一种空间关系:所述多边形完全包含所述矩形视窗;
第二种空间关系:所述矩形视窗完全包含所述多边形;
第三种空间关系:所述多边形与所述矩形视窗无交集;
第四种空间关系:所述多边形与所述矩形视窗相交,但交集不是所述多边形或所述矩形视窗;
S5000:根据所述多边形与所述矩形视窗的空间关系,执行不同操作:
对于第一种空间关系,重合区域为所述矩形视窗,根据重合区域进行剪裁并退出程序;
对于第二种空间关系,重合区域为所述多边形,根据重合区域进行剪裁并退出程序;
对于第三种空间关系,重合区域为空,退出程序;
对于第四种空间关系:
将所述多边形在所述矩形视窗内的第一个顶点作为所述搜索循环链表A的起点A0,重新进行排序,执行逐边分析步骤;
或,
若找到与所述矩形视窗有两个交点的边,将顺序找到的第一条边与所述矩形视窗的两个交点的中点M0插入所述搜索循环链表A中所述第一条边的起点之后,作为所述搜索循环链表A的新起点A0,重新进行排序,执行逐边分析步骤;
逐边分析步骤,
S6000:将所述搜索循环链表A中起点A0添加到重合区域顶点集B;
S7000:令指针指向所述搜索循环链表A中的起点A0;
S8000:判断当前指针指向的多边形的顶点是否在所述矩形视窗内:
若当前多边形顶点位于所述矩形视窗内,则将该多边形顶点添加到重合区域顶点集B;
若当前多边形顶点不在所述矩形视窗内,则根据所述多边形各边与所述矩形视窗交点个数,确定需要添加到重合区域顶点集B的点,将需要添加到重合区域顶点集B的点添加到重合区域顶点集B;
若当前多边形的顶点不为最后一个顶点,令指针指向当前顶点的下一顶点,执行步骤S8000;否则,执行步骤S9000;
确定的所述需要添加到重合区域顶点集B的点至少包括如下一种:所述多边形的若干顶点、所述多边形与所述矩形视窗交点、所述矩形视窗的若干顶点;
S9000:根据重合区域顶点集B进行剪裁并退出程序。


2.根据权利要求1所述的二维多边形图元的矩形视窗剪裁绘图方法,其特征在于,在逐边分析步骤的开始,还包括如下步骤:
S0001:将所述多边形各边确定为矢量边;
S0002:根据所述多边形各矢量边起点和终点相对于所述矩形视窗的位置,将各矢量边与所述矩形视窗的交点确定为出点或入点;
其中,
矢量边的起点在所述矩形视窗内,终点在所述矩形视窗外时,将该矢量边与所述矩形视窗的交点确定为出点,出点所在矩形视窗边记为OutLine;
矢量边的起点在所述矩形视窗外,终点在所述矩形视窗内时,将该矢量边与所述矩形视窗的交点确定为入点,入点所在矩形视窗边记为InLine。


3.根据权利要求2所述的二维多边形图元的矩形视窗剪裁绘图方法,其特征在于,所述逐边分析步骤中,根据所述多边形各边与所述矩形视窗交点个数,确定需要添加到重合区域顶点集B的点和需要添加的矩形视窗的若干顶点,具体包括如下步骤:
S8100:将第一个不在所述矩形视窗内的点Ai+1与其前一点Ai组成的边与所述矩形视窗的交点P1添加到重合区域顶点集B中点Ai之后;
S8200:在所述搜索循环链表中所述点Ai+1之后,依次选择两个相邻点AFd1和AFd2,判断AFd1AFd2与所述矩形视窗的交点个数,并执行相应操作:
S8210:若线段AFd1AFd2与所述矩形视窗有没有交点,则返回S8200,向后寻找新的AFd1和AFd2进行判定;
S8220:若线段AFd1AFd2与所述矩形视窗有两个交点,则将这两个交点的中点M添加到所述搜索循环链表A中,令AFd2为点M,则AFd1AFd2与所述矩形视窗有一个交点P2,
执行步骤S8300;
S8230:若线段AFd1AFd2与所述矩形视窗有一个交点P2,执行步骤S8300;
S8300:构建位于所述矩形视窗外的临时多边形outPoly,以P1为起点依次添加介于P1和P2之间所述多边形的顶点到outPoly中,最后添加P2;
S8400:根据出点和入点所在多边形边的序号,以及outPoly中各顶点坐标信息,在重合区域顶点集B的尾部插入所述矩形视窗的若干顶点,最后添加P2;
...

【专利技术属性】
技术研发人员:邵才瑞原野
申请(专利权)人:中国石油大学华东
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1