Hipotenusa en Javascript

19/Jun/2015 JavaScript , ,

Siguiendo con un conjunto de ejemplos matemáticos vamos a ver como calcular una hipotenusa en Javascript. La buena noticia a la hora de calcular la hipotenusa en Javascript es que en ECMAScript 6 está propuesta la función Math.hypot la cual ya implementan algunos de los motores Javascript.

Así sería tan simple como escribir lo siguiente:

  1. console.log(Math.hypot(2,3));

Y tendríamos calculada la hipotenusa de un triángulo cuyos catetos sean 2 y 3.

La mala noticia es que no podemos asumir que el entorno en que se ejecute nuestro código tenga un interprete de ECMAScript 6 (lo más probable es que sea ECMAScript 5) y por lo tanto debamos de tomar una serie de precauciones.

Estas precauciones pueden pasar por crear un pollyfil, es decir, utilizar la función Math.hypot en el caso de que exista, y si no utilizar nuestra propia implementación.

De esta forma la clase de formulas Javascript que tenemos podría tener un método como el siguiente:

  1. function formulas() {
  2. this.hipotenusa = Math.hypot || function() {
  3. ...
  4. }
  5. }

Lo que estamos haciendo es indicar que usamos la función Math.hypot y si no existe, en ese caso, vamos a implementar la función.

Para implementar una hipotenusa en Javascript lo que tenemos que saber es que la hipotenusa es la raíz cuadrada de la suma de los catetos al cuadrado. Es decir, la famosa formula de:

hipotenusa2 = cateto12 + cateto22

Ahora, para calcular la hipotenusa en Javascript deberemos de saber dos cosas. La primera es que para poder realizar una raíz cuadrada tenemos el método Math.sqrt, al cual pasaremos el valor del cual queramos conocer su raíz cuadrada.

Por otro lado tenemos que saber como elevar un cateto al cuadrado. Para ello podemos hacerlo de dos formas: multiplicando el número por si mismo o utilizar el método Math.pow. El método Math.pow recibe un primer parámetro que es la base (nuestro cateto) y el segundo será el exponente (que será un 2).

De esta forma la formula para calcular la hipotenusa en Javascript tendremos:

  1. Math.sqrt(Math.pow(c1, 2) + Math.pow(c2, 2));

Dónde c1 y c2 son los catetos.

En el caso de que queramos crear el polyfill de la función hypot de ECMAScript 6 hay que tener en cuenta que está realmente puede recibir N parámetros y que eleva todos al cuadrado, los suma y calcula la raíz cuadrada. De esta forma el código será de la siguiente forma:

  1. this.hipotenusa = Math.hypot || function() {
  2. var y = 0;
  3. var length = arguments.length;
  4.  
  5. for (var i = 0; i < length; i++) {
  6. y += arguments[i] * arguments[i];
  7. }
  8. return Math.sqrt(y);
  9. };

Vemos que utilizamos el objeto arguments el cual representa los N parámetros enviados al método hipotenusa.

Vídeos sobre Javascript


Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D