Ich habe eine Reihe von Fragen über Simulationen und Animationen in JavaScript, um zu sehen, die oft die Hypotenuse beinhalten Berechnung: zuSchnellste Hypotenuse in Javascript?
hypot = Math.sqrt(x*x + y*y);
Da kartesisch die Waffe der Wahl in den meisten dieser Motoren sind, werden diese Berechnungen benötigt Finde den Abstand zwischen Paaren von Punkten, usw. Jede Beschleunigung bei der Berechnung der Hypotenuse könnte eine große Hilfe für viele Projekte sein.
Können Sie zu diesem Zweck eine schnellere Methode als die einfache Implementierung oben sehen? Ich fand eine Approximation, die in Chrome marginal schneller war, aber in Firefox, basierend auf this approximation function in SuperCollider, viel langsamer war.
Edit 2015-08-15: Ich habe die akzeptierte Antwort auf die Math.Hypot eins; Ich vermute, dass der pragmatische Ansatz zur Zeit wäre, Math.hypot oder eine synthetisierte Hypot-Funktion zu verwenden, wenn sie nicht verfügbar ist, und mit dem Quadrat zu vergleichen (pro Schs Antwort), wenn das ausreicht und Math.hypot nicht verfügbar ist.
Sie immer [einige 0x5f3759df Magie] (http://en.wikipedia.org/wiki/Fast_inverse_square_root) – violet313
Es ist edel von Ihnen jedes Skript zu wollen, beschleunigen, verwenden könnte, die die pythagoreischen Formel verwendet. Ich glaube jedoch nicht, dass eine allgemeine Lösung existiert, um die Formel schneller zu machen (andernfalls würden wir die 2500 Jahre alte Version nicht verwenden). Anstatt zu versuchen, die Formel schneller zu machen, versuchen Sie, Ihren Code so zu refaktorieren, dass Sie die Formel weniger verwenden, und erst nachdem Sie gezeigt haben, dass die Formel der Engpass in der Leistung Ihres Codes ist. – Kevin
@Kevin: In C oder einer anderen Sprache mit geringeren Gemeinkosten gibt es tatsächlich Annäherungen, die die Dinge beschleunigen. Ob eine Approximation nützlich ist, hängt von der Genauigkeit ab, die ein Modell benötigt, aber für die Spielphysik wäre es in der Regel sinnvoll, wenn es das Gameplay flüssiger macht. –