Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Geometry 查找点是否位于具有给定圆心和半径的圆内_Geometry - Fatal编程技术网

Geometry 查找点是否位于具有给定圆心和半径的圆内

Geometry 查找点是否位于具有给定圆心和半径的圆内,geometry,Geometry,我们有一个点(x,y)和一组其他点(xi,yi)。我们如何确定(xi,yi)中的哪一个位于圆心(x,y)和半径r(给定数字)的圆内?简单方法 计算从点到圆心的距离。如果小于半径,则其在圆内。如果sqrt((xi-x)^2+(yi-y)^2)(xi-x)**2+(yi-y)**2

我们有一个点(x,y)和一组其他点(xi,yi)。我们如何确定(xi,yi)中的哪一个位于圆心(x,y)和半径r(给定数字)的圆内?

简单方法

计算从点到圆心的距离。如果小于半径,则其在圆内。

如果sqrt((xi-x)^2+(yi-y)^2)
(xi-x)**2+(yi-y)**2
如果(xi-x)^2+(yi-y)^2小于d^2,则它在内部。如果它等于d^2,它在圆上。如果大于d^2,则在外部。

我在plsql过程中也遇到了同样的问题。上面的解决方案完全正确,我也这样做了。但它严重影响了我的plsql程序的性能。我用了一个正方形来代替圆的计算。因为它可以在不进行此类计算的情况下在sql语句本身中完成。它将查询性能提高了10倍以上,您可以对此进行优化。Ommit SQRT以获得更好的性能。(xi-x)^2+(yi-y)^2 psasik:可能是因为这是一个边界问题,而不是一个编程问题。使用
(xi-x)**2 + (yi-y)**2 < r**2