判断一个多边形的凸凹性

一、凹凸多边形定义

  因为凸多边形刚好定义,所以还是先看凸多边形的定义,凸多边形(Convex Polygon)可以有以下三种定义:

  1. 没有任何一个内角是优角(Reflexive Angle)的多边形。
  2. 如果把一个多边形的所有边中,有一条边向两方无限延长成为一直线时,其他各边都在此直线的同旁,那么这个多边形就叫做凸多边形。
  3. 凸多边形是一个内部为凸集的简单多边形。

  简单多边形的下列性质与其凸性等价:
  1、所有内角小于等于180度
  2、任意两个顶点间的线段位于多边形的内部或边上
  3、多边形内任意两个点,其连线全部在多边形内部或边上

  可以发现:

  • 所有的正多边形都是凸多边形
  • 所有的三角形都是凸多边形。

  不是凸多边形的,就是凹多边形,所以判断一个多边形的凹凸性,就判断其中一种就行。

二、凹凸性判断

  对于一个多边形,一定可以知道多边形所有的点在平面内的位置,有可能是有序的,有可能是无序的。

多边形的点有序

1. 连续叉乘法

  叉乘 可以用来判断两个向量在空间中的位置关系,在平面内的多边形,我们有它的有序点集,比如 A 1 A 2 A 3 . . . A n A_1A_2A_3...A_n A1A2A3...An,通过 A 1 A 2 ⃗ × A 2 A 3 ⃗ \vec{ A_1A_2 } \times \vec{ A_2A_3 } A1A2 ×A2A3 ,我们可以知道这三个点的走势,只需要记录叉乘的符号即可,接着继续算 A 2 A 3 ⃗ × A 3 A 4 ⃗ \vec{ A_2A_3 } \times \vec{ A_3A_4 } A2A3 ×A3A4 ,依次类推,只要有一次叉乘出来的结果符号和之前的不对,就是凹多边形,如果直到最后多是同样的符号,那么就是凸多边形

多边形的点无序
1. 凸包法

  一个凸多边形的点,是全部位于这个点集的凸包之上的,也就是说:如果一个多边形的点集计算出来的凸包点个数和这个多边形点个数一样多,那么它就是凸多边形,否则就是凹多边形。
  计算凸包有很多方法,具体可以查看计算凸包的博客:待填入

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值