初中生问题:求任意凸多边形的交叉面积

45 篇文章 0 订阅
41 篇文章 1 订阅

一个初中生问题:求任意凸多边形的交叉面积

类似的几种情况


        



第一种0:两个多边形无交叉,没有相交多边形,且一方在另一方没有内点,相交面积为0。

第二种1:两个多边形无交叉,且一方在另一方有内点。称之为包含。

第三种2:两个多边形有交叉,有相交多边形,且一方在另一方有内点。

第四种3:两个多边形有交叉,有相交多边形,且两方在另一方有内点。

第五种4:两个多边形有交叉,有相交多边形,且无内点。

第六种5:奇异情况,重合。


总结:可以看出,多边形相交的面积,即是 所有交点和内点组成的多边形连成的面积。

问题:是不是遗漏了其他情况?


算法描述

1. 判断两个多边形是否相交

     1.1 遍历一个多边形的所有边,判断是否与另一个多边形相交

     1.2  找出所有的交点

2.判断一个多边形在另一多边形内是否有内点

   2.1 遍历一个多边形的所有点,判断是否为另一个多边形内点   

   2.2

3. 根据内点情况和交叉点情况,判断相交情况

    3.1 收集所有内点和交点,

    3.2 计算质心,计算点到质心的角度

    3.3 根据角度排序,连成凸多边形

    3.4 从一点开始,划分多个三角形

    3.5 计算多个三角形的面积,累加:

              三角形面积计算公式:

   

double p = (a + b + c) / 2;
		double s2 = p * (p - a) * (p - b) * (p - c);

4.返回面积累加和


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值