Example #1
0
 public function distance(ElementInterface $a, ElementInterface $b)
 {
     $aCoordinates = $a->getCoordinates();
     $bCoordinates = $b->getCoordinates();
     if (array_keys($aCoordinates) != array_keys($bCoordinates)) {
         throw new \InvalidArgumentException('Unequal elements\' dimensions');
     }
     $sum = 0;
     foreach ($aCoordinates as $dimension => $value) {
         $diff = abs($bCoordinates[$dimension] - $aCoordinates[$dimension]);
         $sum += pow($diff, 2);
     }
     $distance = sqrt($sum);
     return $distance;
 }