CN112837328B - 一种二维多边形图元的矩形视窗剪裁绘图方法 - Google Patents
一种二维多边形图元的矩形视窗剪裁绘图方法 Download PDFInfo
- Publication number
- CN112837328B CN112837328B CN202110202322.4A CN202110202322A CN112837328B CN 112837328 B CN112837328 B CN 112837328B CN 202110202322 A CN202110202322 A CN 202110202322A CN 112837328 B CN112837328 B CN 112837328B
- Authority
- CN
- China
- Prior art keywords
- point
- rectangular window
- polygon
- vertex
- intersection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
- G06T7/64—Analysis of geometric attributes of convexity or concavity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20112—Image segmentation details
- G06T2207/20132—Image cropping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/04—Architectural design, interior design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/21—Collision detection, intersection
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明提供了一种二维多边形图元的矩形视窗剪裁绘图方法,属于计算机图形学技术领域。本发明通过选取多边形第一个内部点为起点,逐次遍历分析多边形各边与矩形视窗边界的空间关系,得到矩形视窗内多边形的边界点,从而裁剪掉无效区域、降低绘图时空复杂度。本发明适用于任意凹、凸多边形被矩形视窗裁剪的情况,可用于地质、工业与建筑等大尺度制图软件的高效绘图,具有较高的时空效率。
Description
技术领域
本发明涉及计算机图形学技术领域,尤其涉及一种二维多边形图元的矩形视窗剪裁绘图方法。
背景技术
多边形裁剪算法被广泛应用于计算机图形学、地理信息系统等领域,是计算机图形学许多重要问题的基础,其主要目的是裁剪掉被裁减多边形(又称实体多边形)位于裁剪多边形之外的部分。计算机绘图时需要针对当前窗口显示区域对多边形进行裁剪,得到重合区域的多边形进而填充,以节省绘图的时空复杂度,提高绘图效率。
在中国专利申请文献CN103034968A中,公开了一种剪裁二维矢量图形的方法,适用于具有遮罩功能的二维矢量图形硬件加速器,此方法包括以下步骤:决定至少一剪裁矩形且将每一剪裁矩形转换成相应于其矩形边缘的矢量图形路径;储存每一个矢量图形路径;设定相应于一显示区域的多个遮罩值,在显示区域中被所述矢量图形路径包围区域的遮罩值设定为非零值,显示区域中非包围区域的遮罩值设定为零值;使能二维矢量图形硬件加速器的遮罩功能,原始图像通过多个遮罩值的帧缓冲而产生相应于显示区域的一新图片;以及描绘新图片于显示区域。该方案仅适用于具有遮罩功能的二维矢量图形硬件加速器,解决剪裁电路领域的问题。
现有技术至少存在以下不足:
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进行剪裁并退出程序。
优选地,在逐边分析步骤的开始,还包括如下步骤:
S0001:将所述多边形各边确定为矢量边;
S0002:根据所述多边形各矢量边起点和终点相对于所述矩形视窗的位置,将各矢量边与所述矩形视窗的交点确定为出点或入点;
其中,
矢量边的起点在所述矩形视窗内,终点在所述矩形视窗外时,将该矢量边与所述矩形视窗的交点确定为出点,出点所在矩形视窗边记为OutLine;
矢量边的起点在所述矩形视窗外,终点在所述矩形视窗内时,将该矢量边与所述矩形视窗的交点确定为入点,入点所在矩形视窗边记为InLine。
优选地,所述逐边分析步骤中,根据所述多边形各边与所述矩形视窗交点个数,确定需要添加到重合区域顶点集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;
S8500:判断AFd2是否为A0,
若AFd2为A0,则遍历完成,程序结束;
否则,返回执行步骤8000,继续遍历所述搜索循环链表A中后续的多边形顶点。
优选地,在步骤S8400中,根据出点和入点所在多边形边的序号,在重合区域顶点集B的尾部插入所述矩形视窗的若干顶点,包括如下步骤:
S8410:设交点P1为边AiAi+1与所述矩形视窗的第OutLine条边的交点,交点P2为线段AFd1AFd2与所述矩形视窗第InLine条边的交点,由步骤S8220可知,P1为出点,P2为入点,由点P1,Ai+1,…,AFd1,P2组成一个临时多边形OutPoly;
S8420:判定所述矩形视窗的各顶点是否在临时多边形OutPoly内,确定出点P1和入点P2所在边的关系;
S8430:根据出点P1和入点P2所在边的关系,确定需要添加的所述矩形视窗顶点的个数;
S8440:根据出点P1出发沿所述矩形视窗的四边到达入点P2的路径所经过的所述矩形视窗顶点的顺序,确定添加顶点的顺序;
S8450:根据需要添加的所述矩形视窗顶点的个数和添加顶点的顺序,在重合区域顶点集B的尾部插入所述矩形视窗的若干顶点。
优选地,步骤S8420中,判定所述矩形视窗的任一顶点P是否在临时多边形OutPoly内的步骤包括:
S8421:输入顶点P的坐标和所述多边形OutPoly顶点的坐标点集C;
S8422:根据点集C横坐标的最大值和最小值,得到一个矩形区域R;
S8423:判断点P是否在矩形区域R内:
如果不在,则点P在所述多边形OutPoly外,结束判断;
如果在,取另外一点P’,使PP’为一条水平线段,P’点横坐标与点集C横坐标的最大值的差大于1,执行步骤S8424;
S8424:从点集C中第一个点开始,依次循环取相邻的两个点Ci和Ci+1,相交次数从0开始,取到点集C中的最后一个点为止;
判断每次取出的两个点组成的线段CiCi+1与线段PP’是否有不为Ci的交点或两线段有重合部分:
如果有,相交次数加1;
如果没有,取下一相邻的点;
取到最后一组线段时,如果相交次数为奇数,则点P在所述多边形OutPoly内;如果相交次数为偶数,则点P在所述多边形OutPoly外。
优选地,步骤S8430中,根据出点P1和入点P2所在边的关系,确定需要添加的所述矩形视窗顶点的个数,具体包括:
若第OutLine边和第InLine边是对边,则需添加两个顶点;
若第OutLine边和第InLine边是邻边,则需添加一个或三个顶点;
若第OutLine边和第InLine边为同一条边,则需添加零个或四个顶点;
优选地,步骤S8440中,具体为:从出点P1出发沿所述矩形视窗的四边引出到达入点P2的路径,选择包括需要添加的顶点的路径,根据路径经过需要添加顶点的顺序,确定添加顶点的顺序。
优选地,还包括,将出点和入点所在边的序号、出点和入点在同一边时的位置关系和所述矩形视窗在所述临时多边形OutPoly中的顶点序号,以及确定的需要添加的所述矩形视窗顶点及添加顺序一一对应地填写到矩形视窗顶点添加表中,供后续直接查询使用。
优选地,在空间关系确定步骤中,根据所述多边形的各顶点与所述矩形视窗的相对位置,得到所述多边形与所述矩形视窗的空间关系,具体包括如下步骤:
从所述多边形的第一个顶点开始,依次判断各顶点是否在所述矩形视窗内:
如果所有顶点都在所述矩形视窗内,则所述空间关系为第二种空间关系;
如果某一顶点的下一顶点不在所述矩形视窗内,则停止搜索,所述空间关系为第四种空间关系;
如果所有顶点都不在所述矩形视窗内,则判断是否有一条边与所述矩形视窗有两个交点:
如果有,则所述空间关系为第四种空间关系;
如果没有,则判断所述矩形视窗的左上角顶点是否在所述多边形内:
如果在,则所述空间关系为第一种空间关系;
如果不在,则所述空间关系为第三种空间关系。
本发明提供了一种用于石油地质图元的绘图方法,采用上述的任一二维多边形图元的矩形视窗剪裁绘图方法;
所述石油地质图元包括如下多边形填充图元数据:褶曲、断层、单斜、尖灭、岩性充填。
与现有技术相对比,本发明的有益效果如下:
(1)本发明通过选取多边形第一个内部点为始点,逐次遍历分析多边形各边与矩形视窗边界的空间关系,得到视窗内多边形的边界点,从而裁剪掉无效区域、降低绘图时空复杂度;
(2)本发明设计了一种新的在已知出点和入点及经过的多边形顶点情况下采用的添加矩形视窗顶点的算法,适用于循环链表存储的多边形顶点集;且适用于任意凹凸多边形与矩形相交的情况,可准确得到重合区域的多边形顶点集;
(3)本发明判断矩形视窗顶点是否在临时多边形内的算法,适用于判断任一点是否在任一多边形内的判断,该算法对经典的引射线法进行了算法优化和精细考虑,判断P点是否不在多边形内时采用首先判断是否不在其外接矩形中,可减少不必要的计算判断;采用对射线长度取有限长线段PP’,并采用判断线段PP’是否与依次取出的两个点组成的线段CiCi+1是否有不为Ci的交点的方法,简化了当射线穿过多边形顶点时的传统计数算法,提高了判定点是否在任意凸凹多边形内的时效。
附图说明
图1为本发明的一个实施例的总体流程图;
图2为本发明的一个实施例的空间关系确定步骤的流程图;
图3为本发明的一个实施例的逐边分析步骤的流程图;
图4为本发明的一个实施例的判断矩形视窗顶点是否在临时多边形内的流程图;
图5a为本发明的一个实施例在重合区域顶点集B尾部添加矩形顶点算法时出点和入点在同一边的情况示意图;
图5b为本发明的一个实施例在重合区域顶点集B尾部添加矩形顶点算法时出点和入点在邻边的情况示意图;
图5c为本发明的一个实施例在重合区域顶点集B尾部添加矩形顶点算法时出点和入点在对边的情况示意图;
图6a为本发明用于任意通用矢量图与矩形视窗相交的一个实施例;
图6b为本发明处理单斜地层模型石油地质图元可视化编程测试的一个实施例;
图6c为本发明处理背斜地层模型石油地质图元可视化编程测试的一个实施例;
图6d为本发明处理断层地层模型石油地质图元可视化编程测试的一个实施例;
图7为本发明的一个实施例的流程图。
具体实施方式
下面结合附图1-5、图7以及图6a-6d,对本发明的具体实施方式作详细的说明。
本发明人提供了一种二维多边形图元的矩形视窗剪裁绘图方法,包括如下步骤:
空间关系确定步骤,
S1000:输入多边形的顶点坐标数据集A’和矩形视窗的坐标数据;
S2000:创建搜索循环链表A和重合区域顶点集B;
S3000:为多边形的顶点和多边形各边、矩形视窗的顶点和矩形视窗的各边编号,将所述多边形顶点坐标数据集A’中各顶点依次存入搜索循环链表A;
S4000:根据所述多边形的各顶点与所述矩形视窗的相对位置,得到所述多边形与所述矩形视窗的空间关系,所述空间关系为如下关系中的一种:
第一种空间关系:所述多边形完全包含所述矩形视窗;
第二种空间关系:所述矩形视窗完全包含所述多边形;
第三种空间关系:所述多边形与所述矩形视窗无交集;
第四种空间关系:所述多边形与所述矩形视窗相交,但交集不是所述多边形或所述矩形视窗;
S5000:根据所述多边形与所述矩形视窗的空间关系,执行不同操作:
对于第一种空间关系,重合区域为所述矩形视窗,根据重合区域进行剪裁并退出程序;
对于第二种空间关系,重合区域为所述多边形,根据重合区域进行剪裁并退出程序;
对于第三种空间关系,重合区域为空,退出程序;
对于第四种空间关系:
将所述多边形在所述矩形视窗内的第一个顶点作为所述搜索循环链表A的起点A0,重新进行排序,执行逐边分析步骤;
或,
若找到与所述矩形视窗有两个交点的边,将顺序找到的第一条边与所述矩形视窗的两个交点的中点M插入所述搜索循环链表A中所述第一条边的起点之后,作为所述搜索循环链表A的新起点A0,重新进行排序,执行逐边分析步骤;
逐边分析步骤,
S6000:将所述搜索循环链表A中起点A0添加到重合区域顶点集B;
S8000:判断当前指针指向的多边形的顶点是否在所述矩形视窗内:
若当前多边形顶点位于所述矩形视窗内,则将该多边形顶点添加到重合区域顶点集B;
若当前多边形顶点不在所述矩形视窗内,则根据所述多边形各边与所述矩形视窗交点个数,确定需要添加到重合区域顶点集B的点,将需要添加到重合区域顶点集B的点添加到重合区域顶点集B;
若当前多边形的顶点不为最后一个顶点,令指针指向当前顶点的下一顶点,执行步骤S8000;否则,执行步骤S9000;
确定的所述需要添加到重合区域顶点集B的点至少包括如下一种点:所述多边形的若干顶点、所述多边形与所述矩形视窗交点、所述矩形视窗的若干顶点;
S9000:根据重合区域顶点集B进行剪裁并退出程序。
作为优选实施方式,在逐边分析步骤的开始,还包括如下步骤:
S0001:将所述多边形各边确定为矢量边;
S0002:根据所述多边形各矢量边起点和终点相对于所述矩形视窗的位置,将各矢量边与所述矩形视窗的交点确定为出点或入点,交点所在矩形视窗的边记为OutLine或InLine;
其中,
矢量边的起点在所述矩形视窗内,终点在所述矩形视窗外时,将该矢量边与所述矩形视窗的交点确定为出点;
矢量边的起点在所述矩形视窗外,终点在所述矩形视窗内时,将该矢量边与所述矩形视窗的交点确定为入点。
作为优选实施方式,所述逐边分析步骤中,根据所述多边形各边与所述矩形视窗交点个数,确定需要添加到重合区域顶点集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;
S8500:判断AFd2是否为A0,
若AFd2为A0,则遍历完成,程序结束;
否则,返回执行步骤8000,继续遍历所述搜索循环链表A中后续的多边形顶点。
作为优选实施方式,在步骤S8400中,根据出点和入点所在多边形边的序号,在重合区域顶点集B的尾部插入所述矩形视窗的若干顶点,包括如下步骤:
S8410:设交点P1为边AiAi+1与所述矩形视窗的第OutLine条边的交点,交点P2为线段AFd1AFd2与所述矩形视窗第InLine条边的交点,由步骤S8220可知,P1为出点,P2为入点,由点P1,Ai+1,…,AFd1,P2组成一个临时多边形OutPoly;
S8420:判定所述矩形视窗的各顶点是否在临时多边形OutPoly内,确定出点P1和入点P2所在边的关系;
S8430:根据出点P1和入点P2所在边的关系,确定需要添加的所述矩形视窗顶点的个数;
S8440:根据出点P1出发沿所述矩形视窗的四边到达入点P2的路径所经过的所述矩形视窗顶点的顺序,确定添加顶点的顺序;
S8450:根据需要添加的所述矩形视窗顶点的个数和添加顶点的顺序,在重合区域顶点集B的尾部插入所述矩形视窗的若干顶点。
作为优选实施方式,步骤S8420中,判定所述矩形视窗的任一顶点P是否在临时多边形OutPoly内的步骤包括:
S8421:输入顶点P的坐标和所述多边形OutPoly顶点的坐标点集C;
S8422:根据点集C横坐标的最大值和最小值,得到一个矩形区域R;
S8423:判断点P是否在矩形区域R内:
如果不在,则点P在所述多边形OutPoly外,结束判断;
如果在,取另外一点P’,使PP’为一条水平线段,P’点横坐标与点集C横坐标的最大值的差大于1,执行步骤S8424;
S8424:从点集C中第一个点开始,依次循环取相邻的两个点Ci和Ci+1,相交次数从0开始,取到点集C中的最后一个点为止;
判断每次取出的两个点组成的线段CiCi+1与线段PP’是否有不为Ci的交点或两线段有重合部分:
如果有,相交次数加1;
如果没有,取下一相邻的点;
取到最后一组线段时,如果相交次数为奇数,则点P在所述多边形OutPoly内;如果相交次数为偶数,则点P在所述多边形OutPoly外。
作为优选实施方式,步骤S8430中,根据出点P1和入点P2所在边的关系,确定需要添加的所述矩形视窗顶点的个数,具体包括:
若第OutLine边和第InLine边是对边,则需添加两个顶点;
若第OutLine边和第InLine边是邻边,则需添加一个或三个顶点;
若第OutLine边和第InLine边为同一条边,则需添加零个或四个顶点;
作为优选实施方式,步骤S8440中,具体为:从出点P1出发沿所述矩形视窗的四边引出到达入点P2的路径,选择包括需要添加的顶点的路径,根据路径经过需要添加顶点的顺序,确定添加顶点的顺序。
作为优选实施方式,还包括,将出点和入点所在边的序号、出点和入点在同一边时的位置关系和所述矩形视窗在所述临时多边形OutPoly中的顶点序号,以及确定的需要添加的所述矩形视窗顶点及添加顺序一一对应地填写到矩形视窗顶点添加表中,供后续直接查询使用。
作为优选实施方式,在空间关系确定步骤中,根据所述多边形的各顶点与所述矩形视窗的相对位置,得到所述多边形与所述矩形视窗的空间关系,具体包括如下步骤:
从所述多边形的第一个顶点开始,依次判断各顶点是否在所述矩形视窗内:
如果所有顶点都在所述矩形视窗内,则所述空间关系为第二种空间关系;
如果某一顶点的下一顶点不在所述矩形视窗内,则停止搜索,所述空间关系为第四种空间关系;
如果所有顶点都不在所述矩形视窗内,则判断是否有一条边与所述矩形视窗有两个交点:
如果有,则所述空间关系为第四种空间关系;
如果没有,判断所述矩形视窗的左上角顶点是否在所述多边形内:
如果在,则所述空间关系为第一种空间关系;
如果不在,则所述空间关系为第三种空间关系。
本发明提供了一种用于石油地质图元的绘图方法,采用上述的任一二维多边形图元的矩形视窗剪裁绘图方法;
所述石油地质图元包括如下多边形填充图元数据:褶曲、断层、单斜、尖灭、岩性充填。
实施例1
根据本发明的一个具体实施方案,下面对本发明中对多边形及矩形视窗各顶点及边的编号方法进行详细说明。
矩形视窗的顶边为1号边,右侧边为2号边,底边为3号边,左侧边为4号边;
矩形视窗左上角顶点为1号顶点,右上角顶点为2号顶点,右下角顶点为3号顶点,左下角顶点为4号顶点。
实施例2
根据本发明的一个具体实施方案,下面详细说明本发明中的空间关系确定步骤的具体实施。
进行如下定义:重合区域顶点集B,搜索循环链表A,矩形视窗R。
空间关系确定步骤包括:
从搜索循环链表A的第一个元素A0开始,遍历链表所有点,判断Ai(i=0,1,2,N-1)是否在矩形R内部;
定义迭代器iter0,若Ai位于矩形视窗R内,则使得iter0指向搜索循环链表中的下一个顶点Ai+1;
若A所有点都在R内,则B=A,结束算法;
若A部分点在R内,部分点在R外,则令iter0当前指向的元素作为循环链表的首元素A0,结束预分析,进入逐条边分析模块;
若A所有点都不在R内,则从多边形第一条边A0A1开始,判断AiAj与矩形的四条边是否相交。若有两个交点,则将两个交点中点M插入到Ai后,N=N+1,令Ai+1即M点为循环链表的首元素A0,结束预分析,进入逐条边分析模块;若多边形没有一条边与矩形R四条边有两个交点,则判定矩形的任一顶点是否在A内,若位于A内,则重合区域多边形B=R,算法结束;若不在,则B=空,算法结束。
实施例3
根据本发明的一个具体实施方案,下面详细说明本发明中的逐边分析步骤的具体实施。
逐边分析步骤包括:
1)定义整型变量i,Fd1,Fd2,令i=0,迭代器iter1指向A0,将A0添加到B的尾部。
2)i<N-1,则进入步骤3),否则进入步骤13)。
3)令迭代器iter指向Ai。进入本步骤,代表Ai一定是在视窗内部的。定义Ai的下一个点为Anext,若i小于N-1时,Anext为Ai+1;若i等于N-1时,此时已经到了最后一个点,则其下一个点为起始点,Anext为A0
4)若Anext在视窗内部,则将Anext添加到点集B的尾部,i=i+1,回到步骤2);否则进入步骤5);
5)Ai在内、Anext在外,则其与矩形视窗必有一个交点P1,P1位于视窗的第OutLine号边,将P1添加到B的尾部;
6)若i+2小于N,则令Fd2=i+2;否则Fd2=0;
7)Fd1为AFd2的前一个点角标,若Fd2=0,则Fd1=N-1;否则Fd1=Fd2-1。
8)令迭代器iter2指向AFd1。若AFd1AFd2与视窗没有交点,则进入步骤9);有一个交点,进入步骤10);有两个交点,进入步骤11)。
9)此时需要进一步寻找入点,则判断Fd2是否小于N-1,若小于,则使得Fd2=Fd2+1,否则Fd2=0。回到步骤7)。
10)此时说明AFd2在矩形视窗R内部。设AFd1AFd2与视窗交点为P2,属于入点,位于矩形视窗R第InLine条边,则构建一个新的多边形OutPoly,端点的数据结构为数组,起点为出点P1,在P1后依次加入Ai+1、Ai+2…AFd1,再加入入点P2。根据多边形OutPoly的点坐标、P1、P2所在的边号OutLine、InLine,判定分析在多边形B尾部需要添加的矩形视窗R的顶点及添加顺序,添加算法见后文;添加完顶点后,再将P2插入B的尾部,进入步骤12)。
11)此时说明AFd2在矩形视窗R外部。将AFd1AFd2与视窗的两个交点的中点M添加到原多边形A的AFd1后,多边形A顶点总数N=N+1,回到步骤8)。(注:此时AFd2点变为了M)
12)若Fd2不为0,说明还没有遍历所有顶点,则令i=Fd2,迭代器iter1指向Ai,并将Ai添加到B尾部,回到步骤2);否则进入步骤13)。
13)输出多边形端点集B,结束。
实施例4
根据本发明的一个具体实施方案,下面详细说明本发明中判断矩形视窗某一顶点P是否在临时多边形内的算法的具体实施。
设输入临时多边形点集为C,需要判断矩形视窗某一顶点P是否在临时多边形C内,具体步骤包括:
1)遍历C所有点,得到横纵坐标的最大最小值,分别为xmax、ymax、xmin、ymin,根据此四个参数形成一个矩形区域R,左上角坐标为(xmin,ymin),右下角坐标为(xmax,ymax)。
2)判断P是否在矩形区域R内,即判断是否同时满足xmin≤x≤xmax,ymin≤y≤ymax,若满足,则进入步骤3);若不满足,则输出点P在多边形C外部,结束。
3)以P点为端点,需引一条水平向右的线段,我们设右端点为P’(xmax+α,P.Y),其中α为一个大于等于1的整数,由于P’横坐标大于C的所有点的横坐标,从而可模拟射线。(注:需使α≥1是由于点坐标为整型,在进行求线段交点计算后,交点坐标需进行四舍五入化为整型,此时真实的交点坐标与输出的交点坐标值会产生不超过0.5的误差,因此需使得α≥1来避免求PP’和多边形C的边求交点时产生错误)
4)设整型变量j=0用来保存PP’和多边形C边交点个数。
5)遍历C的所有边,每次计算PP’与当前边的交点,若有交点且交点不是当前边的起点,或PP’和当前边平行且有一部分重合,则j=j+1。注:由于当PP’与C某条边交点刚好在该边端点(设为点H)时,则PP’与该边的下一条边或上一条边必然有一个交点也是点H,则会造成该交点计数重复,为避免这种情况出现,我们要求交点不得为C当前边的起点;此外,我们定义若PP’和当前边有重合区域时,记作有一个交点。
6)若交点总个数j为奇数,则输出P在多边形C内;否则输出P在多边形C外。
实施例5
根据本发明的一个具体实施方案,图5a、图5b和图5c为顶点添加算法的三种具体情况,结合本图实例,下面对本发明中在重合区域点集B中添加矩形视窗顶点的算法原理进行说明:
根据出点和入点位置相对关系,可分为三种情况:出点和入点位于同一条边、出点和入点位于邻边和出点和入点位于对边。
1)若入点出点位于同一条边,则需要添加的顶点数为0或4。可检查矩形任意一顶点Q是否在多边形OutPoly内,若在,则此时需要添加的顶点数为4,需分析添加矩形视窗顶点的顺序为顺时针或逆时针,以及从哪一个顶点开始添加,可以通过判断入点和出点的相对位置来判定。以图5a为例,若出点为P1,入点为P2,则需要添加的顶点顺序为:1-4-3-2;若出点为P2,入点为P1,添加顺序为:2-3-4-1。出点和顶点同时在其它边时同理。Q不在OutPoly内,则需要添加的矩形视窗顶点为0。
2)若出点和入点位于邻边,则需要添加的顶点数为1或3,需检测出点和入点所在矩形两条边的交点M是否在多边形OutPoly内,若在,则需要添加的顶点为M。若不在,则此时需要添加的顶点为除M点外的其它3个顶点,我们需要知道添加的顺序以及起点,我们可根据出点和入点的位置进行判定。如图5b,若出点为P1,入点为P2,则添加顺序为1-4-3;反之添加顺序为3-4-1。出点和入点在其它边时同理。
3)若出点和入点位于对边,则需要添加的顶点数为2,需知添加的顶点的编号及顺序。需要添加的顶点在此只有两种可能;如图5c所示情况下根据进出点位置,需要添加的顶点为2、3或1、4。我们任选一点判定是否在多边形C中,从而可知道需要添加哪两个顶点。图5c的情况我们判定1号端点在多边形内,故需要添加的顶点为1和4号。得到需要添加的顶点后,通过出点和入点的相对关系进行判定添加顺序。如图5c,若P1为出点P2为入点,则添加顺序为1-4;否则添加顺序为4-1。其它情况同理。
实施例6
根据本发明的一个具体实施方案,下表为填写的矩形视窗顶点添加规则表,包括出点和入点各种位置关系的考虑。
表1为矩形视窗顶点添加规则表
实施例7
根据本发明的一个具体实施方案,下面结合图6a-图6d,对本发明的方法进行详细说明。
基于本发明算法开发了可视化测试软件,测试任意凹凸多边形与矩形相交的求重合区域效果。图6a某宠物轮廓复杂多边形与矩形相交的求交集效果,虚线填充部分为拾取的重合区域,本发明方法能够实现对各种复杂多边形在矩形视窗中的裁剪。
图6b-图6d分别为应用本发明算法对单斜地层、向斜、断层的石油地质图元矢量图形与矩形视窗求重合区域的效果示例,由图可见,在矩形视窗外的石油地质图元矢量图形,根据本发明的方法,确定与矩形视窗的交点,将交点添加到重合区域点集,并进行剪裁。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均包含在本发明的保护范围之内。
Claims (8)
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进行剪裁并退出程序;
其中,根据所述多边形各边与所述矩形视窗交点个数,确定需要添加到重合区域顶点集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;
S8500:判断AFd2是否为A0,
若AFd2为A0,则遍历完成,程序结束;
否则,返回执行步骤8000,继续遍历所述搜索循环链表A中后续的多边形顶点;
其中,步骤S8400中,根据出点和入点所在多边形边的序号,在重合区域顶点集B的尾部插入所述矩形视窗的若干顶点,包括如下步骤:
S8410:设交点P1为边AiAi+1与所述矩形视窗的第OutLine条边的交点,交点P2为线段AFd1AFd2与所述矩形视窗第InLine条边的交点,由步骤S8220可知,P1为出点,P2为入点,由点P1,Ai+1,…,AFd1,P2组成一个临时多边形OutPoly;
S8420:判定所述矩形视窗的各顶点是否在临时多边形OutPoly内,确定出点P1和入点P2所在边的关系;
S8430:根据出点P1和入点P2所在边的关系,确定需要添加的所述矩形视窗顶点的个数;
S8440:根据出点P1出发沿所述矩形视窗的四边到达入点P2的路径所经过的所述矩形视窗顶点的顺序,确定添加顶点的顺序;
S8450:根据需要添加的所述矩形视窗顶点的个数和添加顶点的顺序,在重合区域顶点集B的尾部插入所述矩形视窗的若干顶点。
2.根据权利要求1所述的二维多边形图元的矩形视窗剪裁绘图方法,其特征在于,在逐边分析步骤的开始,还包括如下步骤:
S0001:将所述多边形各边确定为矢量边;
S0002:根据所述多边形各矢量边起点和终点相对于所述矩形视窗的位置,将各矢量边与所述矩形视窗的交点确定为出点或入点;
其中,
矢量边的起点在所述矩形视窗内,终点在所述矩形视窗外时,将该矢量边与所述矩形视窗的交点确定为出点,出点所在矩形视窗边记为OutLine;
矢量边的起点在所述矩形视窗外,终点在所述矩形视窗内时,将该矢量边与所述矩形视窗的交点确定为入点,入点所在矩形视窗边记为InLine。
3.根据权利要求1所述的二维多边形图元的矩形视窗剪裁绘图方法,其特征在于,步骤S8420中,判定所述矩形视窗的任一顶点P是否在临时多边形OutPoly内的步骤包括:
S8421:输入顶点P的坐标和所述多边形OutPoly顶点的坐标点集C;
S8422:根据坐标点集C横坐标的最大值和最小值,得到一个矩形区域R;
S8423:判断点P是否在矩形区域R内:
如果不在,则点P在所述多边形OutPoly外,结束判断;
如果在,取另外一点P’,使PP’为一条水平线段,P’点横坐标与坐标点集C横坐标的最大值的差大于1,执行步骤S8424;
S8424:从坐标点集C中第一个点开始,依次循环取相邻的两个点Ci和Ci+1,相交次数从0开始,取到坐标点集C中的最后一个点为止;
判断每次取出的两个点组成的线段CiCi+1与线段PP’是否有不为Ci的交点或两线段有重合部分:
如果有,相交次数加1;
如果没有,取下一相邻的点;
取到最后一组线段时,如果相交次数为奇数,则点P在所述多边形OutPoly内;如果相交次数为偶数,则点P在所述多边形OutPoly外。
4.根据权利要求1所述的二维多边形图元的矩形视窗剪裁绘图方法,其特征在于,步骤S8430中,根据出点P1和入点P2所在边的关系,确定需要添加的所述矩形视窗顶点的个数,具体包括:
若第OutLine边和第InLine边是对边,则需添加两个顶点;
若第OutLine边和第InLine边是邻边,则需添加一个或三个顶点;
若第OutLine边和第InLine边为同一条边,则需添加零个或四个顶点。
5.根据权利要求1所述的二维多边形图元的矩形视窗剪裁绘图方法,其特征在于,步骤S8440中,具体为:从出点P1出发沿所述矩形视窗的四边引出到达入点P2的路径,选择包括需要添加的顶点的路径,根据路径经过需要添加顶点的顺序,确定添加顶点的顺序。
6.根据权利要求1所述的二维多边形图元的矩形视窗剪裁绘图方法,其特征在于,还包括,将出点和入点所在边的序号、出点和入点在同一边时的位置关系和所述矩形视窗在所述临时多边形OutPoly中的顶点序号,以及确定的需要添加的所述矩形视窗顶点及添加顺序一一对应地填写到矩形视窗顶点添加表中,供后续直接查询使用。
7.根据权利要求1所述的二维多边形图元的矩形视窗剪裁绘图方法,其特征在于,在空间关系确定步骤中,根据所述多边形的各顶点与所述矩形视窗的相对位置,得到所述多边形与所述矩形视窗的空间关系,具体包括如下步骤:
从所述多边形的第一个顶点开始,依次判断各顶点是否在所述矩形视窗内:
如果所有顶点都在所述矩形视窗内,则所述空间关系为第二种空间关系;
如果某一顶点的下一顶点不在所述矩形视窗内,则停止搜索,所述空间关系为第四种空间关系;
如果所有顶点都不在所述矩形视窗内,则判断是否有一条边与所述矩形视窗有两个交点:
如果有,则所述空间关系为第四种空间关系;
如果没有,则判断所述矩形视窗的左上角顶点是否在所述多边形内:
如果在,则所述空间关系为第一种空间关系;
如果不在,则所述空间关系为第三种空间关系。
8.一种用于石油地质图元的绘图方法,其特征在于,采用权利要求1-7任一项所述的二维多边形图元的矩形视窗剪裁绘图方法;
所述石油地质图元包括如下多边形填充图元数据:褶曲、断层、单斜、尖灭、岩性充填。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110202322.4A CN112837328B (zh) | 2021-02-23 | 2021-02-23 | 一种二维多边形图元的矩形视窗剪裁绘图方法 |
PCT/CN2021/110016 WO2022179049A1 (zh) | 2021-02-23 | 2021-08-02 | 一种二维多边形图元的矩形视窗剪裁绘图方法 |
US18/153,817 US11798206B2 (en) | 2021-02-23 | 2023-01-12 | Method for clipping two-dimensional (2D) polygon against rectangular view window |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110202322.4A CN112837328B (zh) | 2021-02-23 | 2021-02-23 | 一种二维多边形图元的矩形视窗剪裁绘图方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112837328A CN112837328A (zh) | 2021-05-25 |
CN112837328B true CN112837328B (zh) | 2022-06-03 |
Family
ID=75932957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110202322.4A Active CN112837328B (zh) | 2021-02-23 | 2021-02-23 | 一种二维多边形图元的矩形视窗剪裁绘图方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11798206B2 (zh) |
CN (1) | CN112837328B (zh) |
WO (1) | WO2022179049A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112837328B (zh) * | 2021-02-23 | 2022-06-03 | 中国石油大学(华东) | 一种二维多边形图元的矩形视窗剪裁绘图方法 |
CN113345045A (zh) * | 2021-06-10 | 2021-09-03 | 西安恒歌数码科技有限责任公司 | 一种基于osgEarth的跨越正负180经度的标绘方法及系统 |
CN113989415A (zh) * | 2021-11-08 | 2022-01-28 | 江苏新格尔人居科技有限公司 | 一种异形门窗的画图方法以及算料方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112057854A (zh) * | 2020-09-10 | 2020-12-11 | 网易(杭州)网络有限公司 | 游戏对象的处理方法、装置、电子设备和计算机可读介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1328136C (en) * | 1988-07-25 | 1994-03-29 | Tina M. Nicholl | Polygon and polyline clipping for computer graphic displays |
US5040130A (en) * | 1988-09-20 | 1991-08-13 | International Business Machines Corporation | Computer graphics boundary--defined area clippping and extraneous edge deletion method |
CN101923699B (zh) * | 2009-06-10 | 2012-09-26 | 炬力集成电路设计有限公司 | 一种降低在矢量图形填充过程中对cpu耗费的方法及装置 |
CN107093203A (zh) * | 2010-06-30 | 2017-08-25 | 巴里·林恩·詹金斯 | 图形信息的基于导航的预取发送或接收的控制方法和系统 |
CN103034968B (zh) | 2011-09-29 | 2015-07-29 | 扬智科技股份有限公司 | 剪裁二维矢量图形的方法 |
CN102360507A (zh) * | 2011-10-19 | 2012-02-22 | 浙江大学 | 一种基于交点排序的多边形裁剪的方法 |
CN102663716A (zh) * | 2012-03-12 | 2012-09-12 | 武汉大学 | 适用于影像有效范围为凸多边形的接缝线网络生成方法 |
CN104778024B (zh) * | 2015-04-23 | 2018-04-03 | 深圳大学 | 一种电子海图显示方法及系统 |
CN109410213A (zh) * | 2018-10-16 | 2019-03-01 | 西安邮电大学 | 基于包围盒的多边形图元裁剪方法、计算机可读存储介质、电子设备 |
CN110989958B (zh) * | 2019-12-13 | 2021-05-14 | 威创集团股份有限公司 | 一种在拼接墙上开多边形窗口的方法和相关装置 |
CN112837328B (zh) * | 2021-02-23 | 2022-06-03 | 中国石油大学(华东) | 一种二维多边形图元的矩形视窗剪裁绘图方法 |
-
2021
- 2021-02-23 CN CN202110202322.4A patent/CN112837328B/zh active Active
- 2021-08-02 WO PCT/CN2021/110016 patent/WO2022179049A1/zh active Application Filing
-
2023
- 2023-01-12 US US18/153,817 patent/US11798206B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112057854A (zh) * | 2020-09-10 | 2020-12-11 | 网易(杭州)网络有限公司 | 游戏对象的处理方法、装置、电子设备和计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2022179049A1 (zh) | 2022-09-01 |
US20230162414A1 (en) | 2023-05-25 |
CN112837328A (zh) | 2021-05-25 |
US11798206B2 (en) | 2023-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112837328B (zh) | 一种二维多边形图元的矩形视窗剪裁绘图方法 | |
JP3344597B2 (ja) | グラフィック画像をテッセレーション化する方法および装置 | |
EP0531157A2 (en) | Three dimensional graphics processing | |
JPH0445874B2 (zh) | ||
US7088358B2 (en) | Collision detection method for deformable objects in a scene | |
JPH0769972B2 (ja) | 画像生成方法 | |
EP2564377A1 (en) | Systems and methods for primitive intersection in ray tracing | |
US6850234B2 (en) | Method and system for determining visible parts of transparent and nontransparent surfaces of there-dimensional objects | |
CN111145356A (zh) | 一种基于Unity3D模型的切割方法 | |
Schauer et al. | Removing non-static objects from 3D laser scan data | |
KR102219289B1 (ko) | 레이 트레이싱 시스템에서의 가속 구조 탐색 장치 및 그 탐색 방법 | |
CN113034515A (zh) | 基于包围盒树的多边形裁剪方法、电子设备及存储介质 | |
Li et al. | Fast and robust GPU-based point-in-polyhedron determination | |
Horvat et al. | Ray-casting point-in-polyhedron test | |
US7379599B1 (en) | Model based object recognition method using a texture engine | |
EP1503346B1 (en) | A process for providing a vector image with removed hidden lines | |
CN114972572A (zh) | 一种石油地质图元的绘图方法 | |
CN115481268A (zh) | 一种平行线墙体数据识别方法、装置、设备及存储介质 | |
Angelidis et al. | Space deformations and their application to shape modeling | |
CN109471161A (zh) | 地质构造属性剖面的建立方法和装置 | |
RU2364940C1 (ru) | Способ расстановки бергштрихов на оригинале рельефа, компьютерный способ распознавания на оригинале рельефа частей горизонталей, проходящих через области с малыми уклонами, и компьютерный способ распознавания минимальных контуров, составленных горизонталями и рамкой оригинала рельефа | |
CA2941145C (en) | Multi-z polylines intersection points editing | |
CN113886937B (zh) | 基于不规则三维空间物体的快速投影计算方法 | |
Woerl et al. | Variable-Radius Offset Surface Approximation on the GPU | |
JPH10111879A (ja) | Cad/cae装置、解析モデル生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |