-1

ポイントの配列を取得しました:

array(
    array('x' => ...,'y' => ...), 
    array('x' => ...,'y' => ...) 
    ...
    )

それらのポイントを1つにする最良の方法は何ですか?つまり、「平均的な」位置にありますか? ペアリングしてからペアリングしてペアリングする... 良いアルゴリズムですか?

非常に簡単に思えるので、この質問には-1 を付けますが、現在 20 時間以上プロジェクトに取り組んでおり、頭がおかしくなってしまいました。

うーん...平均xと平均yを数えるのと同じくらい簡単ですか?

4

3 に答える 3

1

多次元配列のすべての要素をループ処理し、すべての要素を加算した後にそれらの平均を返すために私が書いたこの関数を見てください。

print_r(getAveragePoints(array(array('x' => 1,'y' => 3),array('x' => 2,'y' => 4))));

function getAveragePoints($arrays = array()) {
   if(!empty($arrays)) {
      $i=0;
      $x = 0;
      $y = 0;
      foreach($arrays as $array) {
        // this would take avg 
        $x += $array['x']; // x
        $y += $array['y'];   // y
        $i++;
      }
      $avgX = $x / $i; 
      $avgY = $y / $i;

      return array($avgX,$avgY);
   } else {
      return array(0,0);
   }
}
于 2013-09-15T12:37:27.483 に答える