我有COORDS X = 0.568Ÿ要點= 0.132查找最近點
而且我有一個像點的陣列:
0.545, 0.1488
0.74878, 0.487
0.4845, 0.5485
,我需要找到最近的點由PHP要點 我該怎麼辦?
點0,0它的平均右上角
點1,1肉左下角
我有COORDS X = 0.568Ÿ要點= 0.132查找最近點
而且我有一個像點的陣列:
0.545, 0.1488
0.74878, 0.487
0.4845, 0.5485
,我需要找到最近的點由PHP要點 我該怎麼辦?
點0,0它的平均右上角
點1,1肉左下角
如果你的主要觀點是(X,Y)和另一點是(X1, y1),那麼兩點之間距離的平方爲(x - x1)*(x - x1)+(y - y1)*(y - y1)(應用畢達哥拉斯)。
最近的點是使這個值最小化的點。
此代碼將回顯最接近的和絃的關鍵。希望這會有所幫助:)
<?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);
如果這種座標(-11.6168610,37.6021070)爲$ main_coord,那麼我應該使用相同的上述實現嗎? –
請給出更多信息。你需要什麼?你爲什麼需要這個。這是絕對的(x:0到1)? – Maurize
你必須實現Dijkstra算法(http://codereview.stackexchange.com/questions/75641/dijkstras-algorithm-in-php) –
點0,0意味着右上角 點1,左上角 –