作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在寻找一种快速的方法来确定矩形和圆形之间的相交面积(我需要进行数百万次这样的计算)。
一个特定的属性是,在所有情况下,圆和矩形总是有 2 个交点。
最佳答案
给定 2 个交点:
0 个顶点在圆圈内:circular segment 的面积
XXXXX -------------------
X X X X Circular segment
X X XX XX
+-X-------X--+ XXXXXXXX
| X X |
| XXXXX |
1 个顶点在圆内:圆弧和三角形的面积之和。
XXXXX XXXXXXXXX
X X Triangle ->X _-X
X X X _- X
X +--X--+ X _- X <- Circular segment
X | X | X- XXX
XXXXX | XXXX
| |
2个顶点在圆内:两个三角形和一个圆的面积之和
XXXXX +------------X
X X | _--'/'X
X +--X--- Triangle->| _-- / X
X | X |_-- /XX <- Circular segment
X +-X---- +-------XX
XXXXX Triangle^
三个顶点在圆内:矩形的面积减去三角形的面积加上圆弧的面积
XXXXX
X +--X+ XXX
X | X -------XXX-----+ <- Triangle outside
X | |X Rect ''. XXX |
X +---+X ''. XX|
X X ''. X <- Circular segment inside
X X ^|X
X X | X
XXXXX
要计算这些面积:
您需要使用的大部分点都可以通过查找 intersection of a line and a circle 找到。
您需要计算的区域可以通过computing the area of a circular segment找到和 computing the area of a triangle .
您可以通过计算顶点到圆心的距离是否小于半径来确定顶点是否在圆内。
关于java - 圆与长方形相交的面积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/622287/
下面是 2 个矩形。给定矩形顶点的坐标 - (x1, y1)...(x8, y8),如何计算重叠区域(下图中白色)的面积? 请注意: 点的坐标可以是任意的 矩形可以重叠也可以不重叠 如果矩形不重叠,或
如何确定用户创建的传单形状(多边形 | 矩形 | 圆形等)内有哪个国家、州、地区、城市或地方? 最佳答案 我认为您正在寻找反向地理编码。 Leaflet不提供地理编码服务,但你可以找到类似的例子her
我是一名优秀的程序员,十分优秀!