初中生问题:求任意凸多边形的交叉面积
一个初中生问题:求任意凸多边形的交叉面积
类似的几种情况:
第一种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.返回面积累加和
初中生问题:求任意凸多边形的交叉面积相关推荐
- 求任意凸多边形的面积(计算几何)
链接:https://ac.nowcoder.com/acm/problem/16130 小X的多边形 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...
- 求任意半径圆的面积c语言,需要一个输入半径求圆面积的C语言程序
#include #define PI 3.14159 int main() {float r, l, s; scanf("%f", &r); printf("S ...
- 已知三个点坐标求 三角形面积 || 求任意多边形面积公式||判断点在直线的左侧还是右侧
已知三个点坐标求 三角形面积 由A-->B-->C-->A 按逆时针方向转.(行列式书写要求) 设三角形的面积为S 则S=(1/2)*(下面行列式) |x1 y1 1| |x2 y2 ...
- c++ 求四边形面积和周长_C语言编程题 题目:任意输入4个点,求围成四边形的面积是多少?...
C语言编程题:任意输入4个点,求围成四边形的面积是多少.代码如下: #include "stdio.h" #include "math.h" void main ...
- c++ 求四边形面积和周长_C语言编程题 题目:任意输入4个点,求围成四边形的面积是多少?C语言编程题 题目:任意输入4...
C语言编程题 题目:任意输入4个点,求围成四边形的面积是多少? C语言编程题 题目:任意输入4 www.zhiqu.org 时间: 2020-12-07 我测试过了,四点一线,凹四边形,四边形 ...
- c++如何求任意多边形的面积
由于项目需要,求解任意不规则多边形的面积 ,想了很久,也不知道怎么叙述,直接代码展示吧 #include <iostream> #include <vector> using ...
- 两个凸多边形的公共面积
如何求两个矩形的公共面积? 看到这个问题,首先应该打破思维定式,不要觉得两个矩形一定是终归中规中矩地放着,很有可能是斜着放的. 如果把矩形当成正着放,那么这个问题比:如何求两个三角形公共面积还要简单. ...
- 求任意多边形内部水平方向似最大矩形算法实现
背景说明 前段时间有个求点是否在多边形内部的需求,折腾了不少时间,现截取其中的的重点部分--求任意多边形内部水平方向似最大矩形--来搞篇博客. 求点是否在多边形内部这个算法很容易搞,一搜一大把,但数据 ...
- C#求三角形的周长和面积
内容来自<C#程序设计实验指导与习题测试(第二版)> 实验要求:输入三角形三条边,先判断是否可以构成三角形,如果可以,则求三角形的周长和面积,否则报错. 操作提示: 1.三个数可以构成三角 ...
最新文章
- Akka 系列(五):Java 和 Scala 中的 Future
- 逻辑卷、物理卷、卷组相关操作
- k8s通过label来控制pod的位置
- Node.js 和 Python之间如何进行选择?教你一招搞定
- 比尔·盖茨推荐2020年度五本好书 你想读哪本?
- 朱啸虎:自己来说可以把一小部分资产购买比特币,作为资产配置是可以考虑的
- input text 输入即可识别
- 现场操作前,软件界面的各个功能面板应该通过拖动进行合理布局.请看参考图
- 2012年度IT博客大赛50强报道:张开涛
- 设置matlab关联文件,matlab2014b怎样设置文件关联
- 【Angular/TS】一文弄懂安全导航操作符(?.)、非空断言操作符/可选链(?.) 、空值合并运算符
- Web网站模板-健身房宣传响应式网站模板(HTML+CSS+JavaScript)
- js md5加密 无法md5解密
- 基于ocanvas.js的饼图实例展示
- CentOS部署ScyllaDB 3.3集群
- CDA_Level 1_学习笔记2
- C. Rings(构造)
- Python123:测验1: Python基本语法元素 (第1周)
- Java二手交易平台
- 迅雷快鸟联通宽带提速区域扩至7个省市,最高提速达500M!