当前位置: 首页 > 专利查询>梅非专利>正文

一种多边形的矩形窗口裁剪系统技术方案

技术编号:16039115 阅读:29 留言:0更新日期:2017-08-19 21:00
本发明专利技术属于图形处理技术领域,尤其涉及一种多边形的矩形窗口裁剪系统,包括输入部、处理中心和存储部,本发明专利技术解决了存在大量重复计算、算法复杂且效率低的问题,具有提高了算法效率、良好的适应性、直观高效、提高了用户裁剪图形时体验效果的有益技术效果。

【技术实现步骤摘要】
一种多边形的矩形窗口裁剪系统
本专利技术属于图形处理
,尤其涉及一种多边形的矩形窗口裁剪系统。
技术介绍
在矢量图形渲染系统中,所要显示的图形往往比窗口大很多,因此为了减少不必要的绘制,需要使用显示窗口来裁剪矢量图形,从而提高显示的效率。二维裁剪是图形系统中最为基础、最为常用的操作之一,而所有的二维图形的裁剪都可以归结于多变形的裁剪,传统的裁剪算法主要有Sutherland-Hodgman算法和Liang-Barsky算法。其本身都是作为直线裁剪算法,多边形则裁剪则是通过窗口的边所在直线逐边地裁剪,对于矩形窗口来说也就是需要四次遍历被裁剪多边形。Cohen-Sutherland直线裁剪算法的核心是把所有直线的端点均分配一个表示其相对位置的4位二进制的区域码,从而迅速判断直线和位置关系而舍弃在窗口外的线段,传统的多边形裁剪方法之所以效率比较低,其中最主要的原因就是依次需要利用窗口的每条边对多边形进行裁剪,现有技术存在大量重复计算、算法复杂且效率低的问题。
技术实现思路
本专利技术提供一种多边形的矩形窗口裁剪系统,以解决上述
技术介绍
中大量重复计算、算法复杂且效率低的问题。本专利技术所解决的技术问题采用以下技术方案来实现:一种多边形的矩形窗口裁剪系统,其特征在于,包括:输入部、处理中心和存储部;所述处理中心用于:对第一顶点和第二顶点分别获取区域码,对第一顶点的区域码和第二顶点的区域码进行异或操作和或操作;若异或操作的结果为零,则判断第二顶点的区域码是否为零,若第二顶点的区域码为零,则确定输入的线段在窗口外并不记录第二顶点,若第二顶点的区域码不为零,则确定输入的线段在窗口内并将第二顶点顺序记录于结果集;若异或操作的结果不为零,则判断第二顶点的区域码是否为零,若第二顶点的区域码为零,则确定输入的线段和矩形窗口的线段相交形成窗口交点并将窗口交点记录于顺序记录于结果集,若第二顶点的区域码为零,则确定输入的线段和两条矩形窗口的线段相交形成第一交点和第二交点,将所述的第一交点记录于结果集,所述第二交点不记录于结果集并将第一交点和第二顶点确定为一条拟制线段和矩形窗口的线段相交形成拟制交点并将拟制交点顺序记录于结果集。进一步,所述获取两个端点区域码为经计算获取两个端点区域码或经查表获取两个端点区域码。进一步,所述输入部用于输入多边形任意一条线段的第一顶点和第二顶点。进一步,所述存储部用于存储结果集。本专利技术的有益效果为:1本专利采用包括输入部、处理中心和存储部,所述处理中心用于:对第一顶点和第二顶点分别获取区域码,对第一顶点的区域码和第二顶点的区域码进行异或操作和或操作,若异或操作的结果为零,则判断第二顶点的区域码是否为零,若第二顶点的区域码为零,则确定输入的线段在窗口外并不记录第二顶点,若第二顶点的区域码不为零,则确定输入的线段在窗口内并将第二顶点顺序记录于结果集,若异或操作的结果不为零,则判断第二顶点的区域码是否为零,若第二顶点的区域码为零,则确定输入的线段和矩形窗口的线段相交形成窗口交点并将窗口交点记录于顺序记录于结果集,若第二顶点的区域码为零,则确定输入的线段和两条矩形窗口的线段相交形成第一交点和第二交点,将所述的第一交点记录于结果集,所述第二交点不记录于结果集并将第一交点和第二顶点确定为一条拟制线段和矩形窗口的线段相交形成拟制交点并将拟制交点顺序记录于结果集,由于能够裁剪复杂的多边形,并且可以保留顶点顺序,最重要的是只需要一次遍历多变形顶点序列,大大提高了算法效率。2本专利二维向量的叉乘对顶点和直线关系进行判别,在窗口完全在直线的一侧的情况下不需要求交点。针对矩形窗口的特殊性,专利技术了一种多边形的裁剪方法——基于矩形窗口的多边形快速裁剪方法。该方法不仅能简单直观高效,还具有良好的适应性。3本专利通过线段两个端点的区域码,迅速得到与窗口的位置关系,按照多边形的顺序添加交点,顶点或者窗口顶点,所有的操作一步完成,算法具有直观高效的特点。4、本专利应用范围广泛,提高了用户裁剪图形时体验效果。附图说明图1是本专利技术一种多边形的矩形窗口裁剪系统的结构图;图2是本专利技术一种多边形的矩形窗口裁剪系统的原理图。具体实施方式以下结合附图对本专利技术做进一步描述:图中:1-输入部,2-处理中心,3-存储部。实施例:本实施例包括:如图1所示,一种多边形的矩形窗口裁剪系统,包括输入部1、处理中心2和存储部3;所述处理中心2用于:对第一顶点和第二顶点分别获取区域码,对第一顶点的区域码和第二顶点的区域码进行异或操作和或操作;若异或操作的结果为零,则判断第二顶点的区域码是否为零,若第二顶点的区域码为零,则确定输入的线段在窗口外并不记录第二顶点,若第二顶点的区域码不为零,则确定输入的线段在窗口内并将第二顶点顺序记录于结果集;若异或操作的结果不为零,则判断第二顶点的区域码是否为零,若第二顶点的区域码为零,则确定输入的线段和矩形窗口的线段相交形成窗口交点并将窗口交点记录于顺序记录于结果集,若第二顶点的区域码为零,则确定输入的线段和两条矩形窗口的线段相交形成第一交点和第二交点,将所述的第一交点记录于结果集,所述第二交点不记录于结果集并将第一交点和第二顶点确定为一条拟制线段和矩形窗口的线段相交形成拟制交点并将拟制交点顺序记录于结果集。由于能够裁剪复杂的多边形,并且可以保留顶点顺序,最重要的是只需要一次遍历多变形顶点序列,大大提高了算法效率。进一步,二维向量的叉乘对顶点和直线关系进行判别,在窗口完全在直线的一侧的情况下不需要求交点。针对矩形窗口的特殊性,专利技术了一种多边形的裁剪方法——基于矩形窗口的多边形快速裁剪方法。该方法不仅能简单直观高效,还具有良好的适应性。所述获取两个端点区域码为经计算获取两个端点区域码或经查表获取两个端点区域码。所述输入部1用于输入多边形任意一条线段的第一顶点和第二顶点。所述存储部3用于存储结果集。通过线段两个端点的区域码,迅速得到与窗口的位置关系,按照多边形的顺序添加交点,顶点或者窗口顶点,所有的操作一步完成,算法具有直观高效的特点工作原理:如图1所示,本专利首先计算线段两个端点的区域码,对两个区域码进行异或、或操作。异或的结果等于0表示线段在相同区域,此时可以直接添加或者丢弃该线段。异或的结果不等于0,则根据不同的值进行分析,每一种值都对应两到种相似的情况,我们可以根据异或值判断线段与窗口是否相交,以及与窗口的哪一条边相交,减少了相交的运算。如果异或的结果不为0,线段和窗口也没有交点,这时可看作直线绕过窗口的某一个顶点,窗口顶点也可以看作线段的在窗口上的投影,因此添加窗口顶点到结果集中,因为两次添加相同顶点是没有意义的,所以为了精简结果,只需要添加一次。一次遍历之后得到的结果可能包含在窗口边界上重合而且方向相反的线段,这对图形显示来说不会带来什么问题,我们也可以进一步将裁剪结果拆分为多个简单直观的图形,但这样做的前提是要记录在窗口各条边的每一个交点以及顺序,同时还需要进行路径搜索,增加了计算量,因此在填充图形的裁剪时不采用该方法,本专利技术解决了存在大量重复计算、算法复杂且效率低的问题,具有提高了算法效率、良好的适应性、直观高效、提高了用户裁剪图形时体验效果的有益技术效果。利用本专利技术的技术方案,或本领域的技术人员在本专利技术技术方案的启发下,本文档来自技高网...
一种多边形的矩形窗口裁剪系统

【技术保护点】
一种多边形的矩形窗口裁剪系统,其特征在于,包括输入部、处理中心和存储部;所述处理中心用于:对第一顶点和第二顶点分别获取区域码,对第一顶点的区域码和第二顶点的区域码进行异或操作和或操作;若异或操作的结果为零,则判断第二顶点的区域码是否为零,若第二顶点的区域码为零,则确定输入的线段在窗口外并不记录第二顶点,若第二顶点的区域码不为零,则确定输入的线段在窗口内并将第二顶点顺序记录于结果集;若异或操作的结果不为零,则判断第二顶点的区域码是否为零,若第二顶点的区域码为零,则确定输入的线段和矩形窗口的线段相交形成窗口交点并将窗口交点记录于顺序记录于结果集,若第二顶点的区域码为零,则确定输入的线段和两条矩形窗口的线段相交形成第一交点和第二交点,将所述的第一交点记录于结果集,所述第二交点不记录于结果集并将第一交点和第二顶点确定为一条拟制线段和矩形窗口的线段相交形成拟制交点并将拟制交点顺序记录于结果集。

【技术特征摘要】
1.一种多边形的矩形窗口裁剪系统,其特征在于,包括输入部、处理中心和存储部;所述处理中心用于:对第一顶点和第二顶点分别获取区域码,对第一顶点的区域码和第二顶点的区域码进行异或操作和或操作;若异或操作的结果为零,则判断第二顶点的区域码是否为零,若第二顶点的区域码为零,则确定输入的线段在窗口外并不记录第二顶点,若第二顶点的区域码不为零,则确定输入的线段在窗口内并将第二顶点顺序记录于结果集;若异或操作的结果不为零,则判断第二顶点的区域码是否为零,若第二顶点的区域码为零,则确定输入的线段和矩形窗口的线段相交形成窗口交点并将窗口交点记录于顺序记录于结果集,若第二顶点的区域码为零,则...

【专利技术属性】
技术研发人员:梅非
申请(专利权)人:梅非
类型:发明
国别省市:天津,12

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

1