数学の授業で習ったような気もしますが完全に忘れていたので自分のために書き留めておきます。
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 である。”
ということですが、自分にとってはプログラムのソースを見たほうがわかりやすいと思います。