数学の授業で習ったような気もしますが完全に忘れていたので自分のために書き留めておきます。
function get_middle_point($p1, $p2){ $pm = array(); $pm[] = ( $p1[0] + $p2[0] ) / 2; $pm[] = ( $p1[1] + $p2[1] ) / 2; $pm[] = ( $p1[2] + $p2[2] ) / 2; return $pm; } $p1 = array(5, 10, 3); $p2 = array(20, 2, 10); var_dump(get_middle_point($p1, $p2));
Wikipedia によると、
“一般に n 次元ユークリッド空間上の2点 A, B を直交座標系であらわし、それぞれを (a0, …, an-1), (b0, …, bn-1) とするとその中点は (a0 + b0) / 2, … , (an-1 + bn-1) / 2 である。”
ということですが、自分にとってはプログラムのソースを見たほうがわかりやすいと思います。
http://ja.wikipedia.org/wiki/%E4%B8%AD%E7%82%B9
Similar Posts:
- [PHP]文章中の単語に自動でリンクを貼る(キーワードリンク)
- [PHP]背景の明るさを基準に見やすい文字色を組み合わせる(YUV輝度)
- [PHP]Luhnアルゴリズムによる番号のチェック
- [PHP]レーダーチャート(クモの巣グラフ)をGDで描画する
- [PHP]最小公倍数・最大公約数を求める(ユークリッドの互除法)
- [PHP]RGBをLab色空間の座標に変換する
- [AS3.0]ある座標を中心に回転させる
- [PHP]インスタンスが特定クラスのオブジェクトであるか調べる(型演算子)