• 两个凸多边形的公共面积


    如何求两个矩形的公共面积?

    看到这个问题,首先应该打破思维定式,不要觉得两个矩形一定是终归中规中矩地放着,很有可能是斜着放的。

    如果把矩形当成正着放,那么这个问题比:如何求两个三角形公共面积还要简单。

    把问题变得简单通常有三种思路

    • 具体问题具体分析,发现问题的特殊之处,利用问题的特殊性解决之,这种思路叫做把问题看小了。
    • 把问题想得更通用、更一般化,这样往往能够使得问题描述简单,使思路升高一个维度俯视问题,问题就变得很一般。全景视角能够发现这些子问题之间的联系。
    • 如果总是惦记着前面两种思路,思维就会不集中,很多时候想问题没必要想太多,直接按照最简单、最直观的方法一条路走下去就是了。方法无所谓好无所谓坏。

    求两个矩形的公共面积可以更通用化为:求两个凸多边形的公共面积。

    这个问题有一个直观而暴力的思路:

    • 首先求出平面图上的所有关键点,关键点包括线段交点、凸多边形顶点,记做顶点集A
    • 过滤一下不属于公共部分的点。对于A中的每个点x,如果x不在两个凸多边形的内部,则删除掉x
    • A中剩余的点可以构成一个凸多边形,因为两个凸多边形的交点必然也是凸多边形。给定一个凸多边形的顶点集合,这个凸多边形是唯一的,可以用凸包算法求出。经过此步,A中的点变成了一个序列。实际上,凸包算法针对的是一堆点,而此问题中已经确定这些点都是凸多边形边上的点,所以直接找到一个点,从此点向其余点发出射线,按照射线角度对点排序,就得到了有序的凸多边形点序列。
    • A中的点构成凸多边形,问题变成求凸多边形的面积。

    如何求两个凹多边形的公共面积?任何一个平面多边形都是由若干个三角形组成的。只需要求两个三角形组中两两三角形的公共面积。

    参考资料

    https://blog.csdn.net/xtulollipop/article/details/52357595
    知网

  • 相关阅读:
    python 3+djanjo 2.0.7简单学习(三)--Django 管理页面
    python 3+djanjo 2.0.7简单学习(二)--创建数据库和模型
    lucene3.6.0 经典案例 入门教程
    Android——自定义Actionbar左侧覆盖不全的解决方案
    Android——ViewPager多页面滑动切换以及动画效果
    Android——LayoutInflater详解
    java.sql.SQLException:指定了无效的 Oracle URL
    核函数方法简介
    IEEE论文格式要求
    oracle使用DataBase Configuration Assistant创建、删除数据库
  • 原文地址:https://www.cnblogs.com/weiyinfu/p/9307877.html
Copyright © 2020-2023  润新知