【问题标题】:Check if partial arc intersects circle检查部分圆弧是否与圆相交
【发布时间】:2019-01-03 21:53:43
【问题描述】:

我正在尝试检查圆弧和圆是否相交。

如果我假设弧也是一个圆,我可以判断它们是否相交,代码如下。但我似乎找不到用圆弧和圆(或两个圆弧)来做到这一点的解决方案。 对于圆,我有以下数据:中心,半径。对于圆弧,我有以下数据:圆心、圆弧起点、圆弧终点、圆弧中心到两点的角度、起点角度、终点角度。

//distance between two circles
var d = this.center.distanceTo(cursor.center);

// Check Intersections
if (d > (this.radius + cursor.radius)) {
    //Circles do not intersect
    return false;
} else if (d < this.radius - cursor.radius) {
    // No Solution. one circle is contained in the other
    return false;
} else {
    //circles intersect
    return true;
}

我想要的是圆弧和圆相交的结果。如果可能,但还不需要,交叉点的坐标是多少。

我查看了question,但无法从中得出正面或反面以将其转换为代码公式。

【问题讨论】:

  • 您遇到的math.stackexchange.com 问题比 SO 问题更多。我不知道你的教育水平,但你有一个比一般问题更具体的问题 - 两个函数相交。您基本上是在搜索所有满足以下条件的 X:f(x) = g(x) 其中 f 是圆,g 是弧
  • 如果精确的数学答案不是您所追求的,但是如果在图表中表示两个函数可能会很有趣,一个简单的解决方案就可以了,一个用黄色,另一个用蓝色,并设置两者如此半透明然后在图形中搜索绿色,如果有的话。从视觉上看很有趣,但这绝不是最精确的方式。

标签: javascript typescript


【解决方案1】:

你的圆弧的中点与它的中点有一个指向另一个圆的角度。找到弧内与该角度最近的角度,并投影到弧上的适当点。 如果该点位于圆内,则您知道您的圆弧与圆相交。

【讨论】:

  • 这是我的直觉,你可能想测试一下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-11
  • 2015-05-11
  • 1970-01-01
相关资源
最近更新 更多