2017-04-01 121 views
0

我知道公式知道,如果一个点就在里面,外面和一个圆:https://math.stackexchange.com/q/198769这句话说明了我们必须比较dr(请读帖,它只有5行)。如何知道点是否或多或少属于一个圆?

但我只是想知道,如果一个点是一个圆。此外,这就是真正的问题:点是否有点内/圆外,我要考虑它的社交圈。

我怎么能这样做呢?我试图在范围内划定d-r(即:比较)。例如:

如果(DR> -100 & &博士< 100){点在圆}

它的工作原理,用-100和100,用于与一个小半径的圆(即:所有被有点外侧的点/圆圈内被认为是在圆上)。

但是对于大半径的圆,只有一些点被认为是在圆上(即:只有一些点在圆外/在圆内被认为是在圆上)。 。

所以我想独立于圆的半径是所有的都有点外/圈子里的点被认为是上一圈。怎么样 ?

+0

您的问题*可能*特定于某些编程语言,您尝试编写代码。在帖子的当前状态中,很难推断可能导致问题的原因(这可能是由于对代码中使用的数据类型的误解以及它们的限制)。 –

回答

2

您的绝对差值比较可能被写短的

if Abs(d - r) < delta (i.e. 100) ... 

,但似乎需要相对差异取决于圆的半径是这样的:

if Abs(d - r)/r < reldelta (i.e. 0.001) ... 
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; 
} 
相关问题