he visto una serie de preguntas acerca de las simulaciones y animaciones en JavaScript, que a menudo implica el cálculo de la hipotenusa:hipotenusa más rápida en javascript?
hypot = Math.sqrt(x*x + y*y);
Desde coordenadas cartesianas son el arma de elección en la mayoría de estos motores, estos cálculos son necesarios para encuentre la distancia entre pares de puntos, etc. Por lo tanto, cualquier aceleración en el cálculo de la hipotenusa podría ser de gran ayuda para muchos proyectos.
Para ese fin, ¿puede ver un método más rápido que la simple implementación anterior? Encontré una aproximación que fue marginalmente más rápida en Chrome, pero resultó ser mucho más lenta en Firefox, basada en this approximation function in SuperCollider.
Editar 2015-08-15: Cambié la respuesta aceptada a Math.hypot; Sospecho que el enfoque pragmático en este momento sería usar Math.hypot o una función hipotética sintetizada si no está disponible, y compararla con el cuadrado (por respuesta de sch) si eso es suficiente y Math.hypot no está disponible.
usted podría utilizar siempre [algo de magia 0x5f3759df] (http://en.wikipedia.org/wiki/Fast_inverse_square_root) – violet313
Es noble de su parte desea acelerar cada guión que utiliza la fórmula de Pitágoras. Sin embargo, no creo que exista una solución general para hacer que la fórmula sea más rápida (de lo contrario, no estaríamos usando la versión de 2.500 años). En lugar de tratar de hacer que la fórmula sea más rápida, intente refactorizar su código para que use menos la fórmula, y solo después de que haya demostrado que la fórmula es el cuello de botella en el rendimiento de su código. – Kevin
@Kevin: en C o en algún otro idioma con gastos generales más bajos, de hecho hay aproximaciones que aceleran las cosas. Si una aproximación es útil depende de la precisión que necesita un modelo, pero para la física del juego generalmente valdría la pena si hace que el juego sea más fluido. –