Geometry 如何知道一个点或多或少属于一个圆?

Geometry 如何知道一个点或多或少属于一个圆?,geometry,coordinates,computational-geometry,Geometry,Coordinates,Computational Geometry,我知道一个点是否在圆内、圆外和圆上的公式:这段引文解释了我们必须将d与r进行比较(请阅读引文,它只有5行) 但我只想知道点是否在圆上。此外,这才是真正的问题:如果一个点有点在圆的里面/外面,我想把它看成是圆上的。< /强> 我怎么能这么做?我试图将d-r(即:比较)限定在一个范围内。例如: 如果(d-r>-100&&d-r

我知道一个点是否在圆内、圆外和圆上的公式:这段引文解释了我们必须将
d
r
进行比较(请阅读引文,它只有5行)

但我只想知道点是否在圆上。此外,这才是真正的问题:<强>如果一个点有点在圆的里面/外面,我想把它看成是圆上的。< /强>

我怎么能这么做?我试图将d-r(即:比较)限定在一个范围内。例如:

如果(d-r>-100&&d-r<100){点在圆上}

它适用于-100和100,适用于半径较小的圆(即:圆内/外稍大的所有点都视为在圆上)

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


因此,我希望所有稍微在圆外部/内部的点都被视为在圆上,与圆的半径无关。如何比较?

您的绝对差异比较可能写得更短,如下所示:

if Abs(d - r) < delta (i.e. 100) ...
如果Abs(d-r)
但似乎需要根据圆半径的相对差异,如下所示:

if Abs(d - r) / r  < reldelta (i.e. 0.001) ...
如果Abs(d-r)/r
您的绝对差异比较可能写得更短

if Abs(d - r) < delta (i.e. 100) ...
如果Abs(d-r)
但似乎需要根据圆半径的相对差异,如下所示:

if Abs(d - r) / r  < reldelta (i.e. 0.001) ...
如果Abs(d-r)/r
从概率角度来看,您可以定义一种采用相对距离的距离图(如@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;
}
rel_d=(d-r)/r;
//P(圆上的x)=1-相对密度
如果(相对值<1){
圆上的P_=1-相对;
}否则{
圆上的P_=0;
}

从概率角度来看,您可以定义一种采用相对距离的距离图(如@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;
}
rel_d=(d-r)/r;
//P(圆上的x)=1-相对密度
如果(相对值<1){
圆上的P_=1-相对;
}否则{
圆上的P_=0;
}
您的问题可能特定于您试图使用的某种编程语言。在文章的当前状态下,很难解释是什么导致了您的问题(这可能是由于对代码中使用的数据类型及其限制的误解)。您的问题可能特定于您试图使用的某种编程语言。在文章的当前状态下,很难解释是什么导致了您的问题(这可能是由于对代码中使用的数据类型以及它们的局限性的误解)。