简单多边形的三角剖分(并附带python实现代码)
简单多边形的三角剖分
1 折线、闭折线、简单闭折线、简单多边形
折线:将平面上一些点的序列连接起来,可以得到一条折线。
如:有点列 A 1 , A 2 , . . . , A n A_1,A_2,...,A_n A1,A2,...,An,则将其顺次连接,得到的一条折线。
点列中的点,称为折线的控制点。
闭折线:如果一条折线的起点和终点相同,则称该折线为闭折线。以连续两控制点为端点的线段,称为折线的边。有一个共同端点的边称为相邻边。
如:顺次连接点列 A 1 , A 2 , . . . , A n , A 1 A_1,A_2,...,A_n,A_1 A1,A2,...,An,A1,得到的一条闭折线。
简单闭折线:一条闭折线,如果其控制点和边满足如下四点,则该闭折线称为简单闭折线。
1、闭折线包含至少三个不同的控制点
2、控制点两两不同
3、连续的三个控制点不共线
4、不相邻的两条边,不相交
简单闭折线的控制点,也称为其顶点。
简单多边形:由简单闭折线围成的图形称为简单多边形。简单多边形按照边的数目,给其命名为简单n边形。
简单多边形,是单连通的。
下列图形都是简单多边形:
图一
说明:若无特殊交待,下述多边形均指简单多边形。
2 多边形的三角剖分
多边形的三角剖分:一个多边形,如果可以表示为一些内部两两不交的三角形的并,并且这些三角形满足如下条件
1、三角形的顶点,是多边形的顶点
2、若两三角形相交,则其要么交于一点,要么交于一边(即恰有一条公共边)。
则称这样的三角形划分方法为该多边形的一个三角剖分。
例如
图二
多边形的分类:多边形可以分为凸多边形和凹多边形。若连接多边形内任意两点的线段也在多边形内,就称这样的多边形为凸多边形;不是凸多边形的多边形称为凹多边形。
剩余图形:超过三个点的多边形,可以擦去一个点,形成一个新的多边形。比如,多边形 A B C D A ABCDA ABCDA,擦去 B B B点,形成新的图形 A C D A ACDA ACDA,擦去 A A A点则形成新图形 B C D B BCDB BCDB。如果记原图形 A B C D A ABCDA ABCDA为 G \mathbf{G} G,则擦去一点 B B B后的图形记为 G B \mathbf{G_B} GB。
图三
拆出三角形:擦去的一个点,必然能和其相邻的两个点构成一个三角形,这个三角形称为该擦去点的拆出三角形。上图中的 Δ A B C \Delta ABC ΔABC就是 B B B点的拆出三角形。
凸顶点、凹顶点:多边形 G \mathbf{G} G的一个顶点 V V V,如果不包含在擦除该顶点后的剩余图形中,即 V ∉ G V V\notin\mathbf{G_V} V∈/GV,则称 V V V为 G \mathbf{G} G的一个凸顶点;否则称为凹顶点。
命题1:若一个多边形的每个顶点都是凸顶点,则该多边形为凸多边形。
三角形是最简单的凸多边形。
命题2:一个凹多边形,至少有一个凹顶点,至少有三个凸顶点。
命题3:一个凸 n n n边形( n > 3 n>3 n>
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!



