Widziałem kilka pytań o symulacje i animacje w JavaScript, który często wiąże obliczania przeciwprostokątną:Najszybsza przeciwprostokątna w javascript?
hypot = Math.sqrt(x*x + y*y);
Ponieważ współrzędne kartezjańskie są bronią w większości z tych silników, obliczenia te są potrzebne do znajdź odległość między parami punktów itp. Więc każde przyspieszenie w obliczaniu przeciwprostokątnej może być bardzo pomocne w wielu projektach.
W tym celu widzisz szybszą metodę niż powyższa prosta implementacja? Zauważyłem przybliżenie, które było nieznacznie szybsze w Chrome, ale w Firefoksie okazało się znacznie wolniejsze, oparte na this approximation function in SuperCollider.
Edycja 2015-08-15: Zmieniłem zaakceptowaną odpowiedź na bemię Math.hypot; Podejrzewam, że obecnie pragmatyczne podejście polegałoby na używaniu Math.hypota lub syntezowanej funkcji hipotetycznej, jeśli nie jest dostępna, i na porównaniu z kwadratem (na odpowiedź per sch), jeśli to wystarczy i Math.hypot nie jest dostępny.
zawsze można użyć [niektóre 0x5f3759df magia] (http://en.wikipedia.org/wiki/Fast_inverse_square_root) – violet313
To szlachetny pan chce przyspieszyć każdy skrypt, który używa formuły Pitagorasa. Jednak nie sądzę, aby istniało ogólne rozwiązanie, które przyspieszyłoby formułowanie (w przeciwnym razie nie używalibyśmy wersji 2500-letniej). Zamiast próbować przyspieszyć formułę, spróbuj zmienić kod, aby użyć formuły mniej i dopiero po wykazaniu, że formuła jest wąskim gardłem w wydajności twojego kodu. – Kevin
@Kevin: W języku C lub innym języku z niższymi narzutami, są rzeczywiście przybliżenia, które przyspieszają. To, czy przybliżenie jest użyteczne, zależy od dokładności wymaganej przez model, ale w przypadku fizyki gry byłoby ogólnie rzecz biorąc opłacalne, gdyby gra była bardziej płynna. –