2013年1月12日土曜日

【PHP】複数座標点の外接矩形から中心点を求める

与えられた複数座標に外接する矩形の中心点を求める。
選択した点の大体の中心を求める時に使う。

  public static function getCenterCoordinate($coordinates){
    // 初期化
    $max_x_value = $coordinates[0]['x'];
    $min_x_value = $coordinates[0]['x'];
    $max_y_value = $coordinates[0]['y'];
    $min_y_value = $coordinates[0]['y'];

    // 座標点を含む矩形の中点を作成して返す
    foreach($coordinates as $coordinate){
      if($coordinate['x'] < $min_x_value){
        $min_x_value = $coordinate['x'];
      }
      if($coordinate['y'] < $min_y_value){
        $min_y_value = $coordinate['y'];
      }
      if($coordinate['x'] > $max_x_value){
        $max_x_value = $coordinate['x'];
      }
      if($coordinate['y'] > $max_y_value){
        $max_y_value = $coordinate['y'];
      }
    }
    $center_value = array();
    $center_value['x'] = ($max_x_value + $min_x_value) / 2;
    $center_value['y'] = ($max_y_value + $min_y_value) / 2;

    return $center_value;
  }

もっとちゃんと中心をもとめたい場合は回転を考慮する。



0 件のコメント:

コメントを投稿