# hypot

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

hypot Calculate the length of the hypotenuse of a right-angle triangle

### 설명

float hypot ( float \$x , float \$y )

hypot() returns the length of the hypotenuse of a right-angle triangle with sides of length x and y, or the distance of the point (x, y) from the origin. This is equivalent to sqrt(x*x + y*y).

### 인수

x

Length of first side

y

Length of second side

### 반환값

Calculated length of the hypotenuse

### User Contributed Notes 2 notes

-7
Hayley Watson
6 years ago
If you need a higher-dimensional diagonal length (norm), you can exploit the fact that sqrt(x*x+y*y+z*z) == sqrt(x*x+sqrt(y*y+z*z)). In other words hypot(x, y, z)==hypot(x, hypot(y, z)).

<?php

function norm(...\$args)
{
return
array_reduce(\$args, 'hypot', 0);
}

?>
-19
robinv at ecosse dot net
19 years ago
A simpler approach would be to allow an arbitrary number of parameters. That would allow for whatever number of dimensions you want *and* it would be backwards compatible with the current implementation.

<?php

function hypo()
{

\$sum = 0;
foreach (
func_get_args() as \$dimension) {
if (!
is_numeric(\$dimension)) return -1;

\$sum += pow(\$dimension, 2);
}
return
sqrt(\$sum);
}

print
hypo();          // vector in 0 dimensions, magnitude = 0.
print hypo(1);         // vector in 1 dimension,  magnitude = 1.
print hypo(3, 4);       // vector in 2 dimensions, magnitude = 5.
print hypo(2, 3, 6);     // vector in 3 dimensions, magnitude = 7.

?>