检查部分圆弧是否与圆相交

时间:2019-01-03 13:48:13

标签: javascript typescript

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

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

//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,但是无法从中得出正面或反面来将其转换为代码公式。

1 个答案:

答案 0 :(得分:0)

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