Android 矩形与圆(或圆弧)的交点
我读了很多关于这方面的帖子,要么是我的大脑不工作,要么就是找不到正确的答案 我淹没了一个分段的圆(即使用圆弧的圆),我有一个正在移动的图像视图(矩形)。我如何知道矩形和圆何时相交,以及哪个弧或交点 我能够获得imageview的矩形和圆的矩形/中心/半径 非常感谢你的帮助Android 矩形与圆(或圆弧)的交点,android,Android,我读了很多关于这方面的帖子,要么是我的大脑不工作,要么就是找不到正确的答案 我淹没了一个分段的圆(即使用圆弧的圆),我有一个正在移动的图像视图(矩形)。我如何知道矩形和圆何时相交,以及哪个弧或交点 我能够获得imageview的矩形和圆的矩形/中心/半径 非常感谢你的帮助 谢谢检测矩形-圆形交点并找到交点 您可以将问题分解为两个较小的问题。在下列情况下,矩形和圆之间将有一个交点: 圆完全位于矩形内,或 矩形的四条边中的任意一条与圆相交 第一种情况很简单,只需检查圆的中心点是否在矩形内,并且是
谢谢检测矩形-圆形交点并找到交点 您可以将问题分解为两个较小的问题。在下列情况下,矩形和圆之间将有一个交点:
- 圆完全位于矩形内,或
- 矩形的四条边中的任意一条与圆相交
如果在执行测试之前圆已分割为预定义圆弧,则可以通过比较每个交点的角度(使用atan2()计算)与每个预定义圆弧的起点和终点角度来检查每个交点所属的圆弧。类似地,如果您只想针对单个圆弧而不是整个圆测试矩形,检查给定交点的角度是否在圆弧的起点-终点范围内,如果不在,则忽略它。我使用另一种方法:按圆半径增大矩形,并检查矩形是否包含圆心:
PointF center;
float radius;
RectF rect;
// Copy rect in another RectF instance if you need it later
rect.inset (-radius, -radius);
if (rect.contains (center.x, center.y)) {
// Intersection
}
我希望它有助于复制