3v4l.org

run code in 300+ PHP versions simultaneously
<?php $a = [1, 2]; $b = [2, 4]; $p = [4, 3]; function vector_2d(array $v1, array $v2) { return [$v2[0] - $v1[0], $v2[1] - $v1[1]]; } function dot_product(array $v1, array $v2) { return $v1[0]*$v2[0] + $v1[1]*$v2[1]; } function modulus(array $v) { return sqrt($v[0]**2 + $v[1]**2); } $pa = vector_2d($p, $a); $ab = vector_2d($a, $b); $mpa = modulus($pa); $mab = modulus($ab); $theta = acos(dot_product($pa, $ab)/($mpa*$mab)); $perp_dist = $mpa*sin($theta); echo $perp_dist;

preferences:
51.26 ms | 402 KiB | 5 Q