<?php
$verticies =
[
[ 0 , 0 , 0 ] ,
[ 1 , 0 , 0 ] ,
[ 1 , 1 , 1 ] ,
[ 0 , 1 , 1 ] ,
] ;
for ( $i = 0 ; $i < count ( $verticies ) ; $i ++ ) {
//current vertex
$pi = $verticies [ $i ] ;
//next vertex
$pj = $verticies [ ( $i + 1 ) % count ( $verticies ) ] ;
//0 = x, 1 = y, 2 = z
$nx += ( ( ( $pi [ 2 ] ) + ( $pj [ 2 ] ) ) * ( ( $pj [ 1 ] ) - ( $pi [ 1 ] ) ) ) ;
$ny += ( ( ( $pi [ 0 ] ) + ( $pj [ 0 ] ) ) * ( ( $pj [ 2 ] ) - ( $pi [ 2 ] ) ) ) ;
$nz += ( ( ( $pi [ 1 ] ) + ( $pj [ 1 ] ) ) * ( ( $pj [ 0 ] ) - ( $pi [ 0 ] ) ) ) ;
}
echo $nx . ', ' . $ny . ', ' . $nz ;
PD9waHAKCiR2ZXJ0aWNpZXMgPQpbCiAgICBbMCwgMCwgMF0sCiAgICBbMSwgMCwgMF0sCiAgICBbMSwgMSwgMV0sCiAgICBbMCwgMSwgMV0sCl07ICAKICAgIAoKZm9yICgkaSA9IDA7ICRpIDwgY291bnQoJHZlcnRpY2llcyk7ICRpKyspIAp7CiAgICAvL2N1cnJlbnQgdmVydGV4CiAgICAkcGkgPSAkdmVydGljaWVzWyRpXTsKCiAgICAvL25leHQgdmVydGV4CiAgICAkcGogPSAkdmVydGljaWVzWygkaSsxKSAlIGNvdW50KCR2ZXJ0aWNpZXMpXTsKCiAgICAvLzAgPSB4LCAxID0geSwgMiA9IHoKICAgICRueCArPSAoKCgkcGlbMl0pICsgKCRwalsyXSkpICogKCgkcGpbMV0pIC0gKCRwaVsxXSkpKTsKICAgICRueSArPSAoKCgkcGlbMF0pICsgKCRwalswXSkpICogKCgkcGpbMl0pIC0gKCRwaVsyXSkpKTsKICAgICRueiArPSAoKCgkcGlbMV0pICsgKCRwalsxXSkpICogKCgkcGpbMF0pIC0gKCRwaVswXSkpKTsKfQoKZWNobyAkbnguJywgJy4kbnkuJywgJy4kbno7