【发布时间】: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