找到最近的点

时间:2015-07-10 10:13:57

标签: php

我的主点有坐标x = 0.568 y = 0.132

我有一些点,如:

0.545, 0.1488
0.74878, 0.487
0.4845, 0.5485

我需要找到PHP最接近MAIN POINT的点 我该怎么办?

点0,0表示右上角

第1点,1个肉左下角

2 个答案:

答案 0 :(得分:0)

如果你的主要点是(x,y)而另一个点是(x1,y1),那么两点之间距离的平方是(x - x1)*(x - x1)+(y - y1)*(y - y1)(毕达哥拉斯的应用)。

最近的点是最小化该值的点。

答案 1 :(得分:0)

此代码将回显最近和弦的键。希望这会有所帮助:)

<?php

$main_coord=array('x'=>0.568,'y'=>0.132);

$main_coord_total=$main_coord['x']+$main_coord['y'];

$coords=array(
array('x'=>0.545,'y'=>0.1488),
array('x'=>0.74878,'y'=>0.487),
array('x'=>0.4845,'y'=>0.5485)
);

$dif_array=array();

foreach($coords as $key=>$coord){

$difference=($coord['x']+$coord['y'])-$main_coord_total;

if(strchr($difference,'-')){
    $difference=substr($difference,1);  
}

$dif_array[$key]=$difference;   
}

$min_value=min($dif_array);

echo 'The closest coords key is:'.array_search($min_value, $dif_array);