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

类似的几种情况

第一种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.返回面积累加和

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

  1. 求任意凸多边形的面积(计算几何)

    链接:https://ac.nowcoder.com/acm/problem/16130 小X的多边形 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...

  2. 求任意半径圆的面积c语言,需要一个输入半径求圆面积的C语言程序

    #include #define PI 3.14159 int main() {float r, l, s; scanf("%f", &r); printf("S ...

  3. 已知三个点坐标求 三角形面积 || 求任意多边形面积公式||判断点在直线的左侧还是右侧

    已知三个点坐标求 三角形面积 由A-->B-->C-->A 按逆时针方向转.(行列式书写要求) 设三角形的面积为S 则S=(1/2)*(下面行列式) |x1 y1 1| |x2 y2 ...

  4. c++ 求四边形面积和周长_C语言编程题 题目:任意输入4个点,求围成四边形的面积是多少?...

    C语言编程题:任意输入4个点,求围成四边形的面积是多少.代码如下: #include "stdio.h" #include "math.h" void main ...

  5. c++ 求四边形面积和周长_C语言编程题 题目:任意输入4个点,求围成四边形的面积是多少?C语言编程题 题目:任意输入4...

    C语言编程题 题目:任意输入4个点,求围成四边形的面积是多少? C语言编程题 题目:任意输入4 www.zhiqu.org     时间: 2020-12-07 我测试过了,四点一线,凹四边形,四边形 ...

  6. c++如何求任意多边形的面积

    由于项目需要,求解任意不规则多边形的面积 ,想了很久,也不知道怎么叙述,直接代码展示吧 #include <iostream> #include <vector> using ...

  7. 两个凸多边形的公共面积

    如何求两个矩形的公共面积? 看到这个问题,首先应该打破思维定式,不要觉得两个矩形一定是终归中规中矩地放着,很有可能是斜着放的. 如果把矩形当成正着放,那么这个问题比:如何求两个三角形公共面积还要简单. ...

  8. 求任意多边形内部水平方向似最大矩形算法实现

    背景说明 前段时间有个求点是否在多边形内部的需求,折腾了不少时间,现截取其中的的重点部分--求任意多边形内部水平方向似最大矩形--来搞篇博客. 求点是否在多边形内部这个算法很容易搞,一搜一大把,但数据 ...

  9. C#求三角形的周长和面积

    内容来自<C#程序设计实验指导与习题测试(第二版)> 实验要求:输入三角形三条边,先判断是否可以构成三角形,如果可以,则求三角形的周长和面积,否则报错. 操作提示: 1.三个数可以构成三角 ...

最新文章

  1. Akka 系列(五):Java 和 Scala 中的 Future
  2. 逻辑卷、物理卷、卷组相关操作
  3. k8s通过label来控制pod的位置
  4. Node.js 和 Python之间如何进行选择?教你一招搞定
  5. 比尔·盖茨推荐2020年度五本好书 你想读哪本?
  6. 朱啸虎:自己来说可以把一小部分资产购买比特币,作为资产配置是可以考虑的
  7. input text 输入即可识别
  8. 现场操作前,软件界面的各个功能面板应该通过拖动进行合理布局.请看参考图
  9. 2012年度IT博客大赛50强报道:张开涛
  10. 设置matlab关联文件,matlab2014b怎样设置文件关联
  11. 【Angular/TS】一文弄懂安全导航操作符(?.)、非空断言操作符/可选链(?.) 、空值合并运算符
  12. Web网站模板-健身房宣传响应式网站模板(HTML+CSS+JavaScript)
  13. js md5加密 无法md5解密
  14. 基于ocanvas.js的饼图实例展示
  15. CentOS部署ScyllaDB 3.3集群
  16. CDA_Level 1_学习笔记2
  17. C. Rings(构造)
  18. Python123:测验1: Python基本语法元素 (第1周)
  19. Java二手交易平台
  20. 迅雷快鸟联通宽带提速区域扩至7个省市,最高提速达500M!

热门文章

  1. angular input和output
  2. Linux基础命令---comm
  3. DateTimePicker控件在WinXP下的BUG
  4. IOS开发如何在iTunes中查看沙河下的路径
  5. java中 构造器与void
  6. Mysql系列常见面试题
  7. Filter,FilterChain,FilterConfig
  8. 数据结构:哈希表(散列表)基础
  9. 360度旋转图片小特效
  10. 关于JSON的简介及取值以及常见面试题