我知道一个公式,知道一个点是在内部,外部还是在一个圆圈上:https://math.stackexchange.com/q/198769这句话解释了我们必须将d
与r
进行比较(请阅读引文, 只有5行)。
但我只是想知道一个点是否在圆圈。而且,这是真正的问题:如果一个点在圆圈内/外有点,我想把它视为圆圈。
我怎么能这样做?我试图在一个范围内划定d-r
(即:比较)。示例:
if(d-r> -100&& d-r< 100){point is the circle}
对于半径较小的圆(即:所有在圆外/内的位的点都被视为在圆上),它的工作原理为-100和100。
但是对于大半径的圆圈,只有一些点被认为是在圆上(即:只有一些在圆圈之外/之内的点被认为是在圆上)...
所以我希望圆圈外部/内部的所有点都被认为是在圆上,与圆的半径无关。怎么样?
答案 0 :(得分:2)
您对绝对差异的比较可能会缩短为
if Abs(d - r) < delta (i.e. 100) ...
但似乎你需要相对差异,这取决于圆半径,如下所示:
if Abs(d - r) / r < reldelta (i.e. 0.001) ...
答案 1 :(得分:1)
从概率的角度来看,你可以定义一种距离图(由@Mbo提出)采用相对距离并用它来建立每个点的概率分布。概率表示该点属于圆的一种可能性。直观地说,越接近点,就越有可能成为圆圈的一部分。例如:
rel_d = (d-r)/r;
// P(x on the circle) = 1 - rel_d
if(rel_d < 1){
P_on_circle = 1 - rel_d;
}else{
P_on_circle = 0;
}