Tôi đã nhìn thấy một số câu hỏi về mô phỏng và hình ảnh động trong javascript, mà thường liên quan đến tính cạnh huyền:hypotenuse nhanh nhất trong javascript?
hypot = Math.sqrt(x*x + y*y);
Kể từ tọa độ Descartes là vũ khí của sự lựa chọn trong hầu hết các động cơ, những tính toán này là cần thiết để tìm khoảng cách giữa các cặp điểm, vv Vì vậy, bất kỳ sự tăng tốc nào trong việc tính toán cạnh huyền có thể là một trợ giúp lớn cho nhiều dự án.
Để kết thúc, bạn có thể thấy phương pháp nhanh hơn so với triển khai đơn giản ở trên không? Tôi đã tìm thấy một phép tính xấp xỉ nhanh hơn trong Chrome, nhưng hóa ra lại chậm hơn nhiều trong Firefox, dựa trên this approximation function in SuperCollider.
Chỉnh sửa 2015-08-15: Tôi đã chuyển câu trả lời được chấp nhận thành Math.hypot; Tôi nghi ngờ cách tiếp cận thực dụng hiện nay sẽ là sử dụng Math.hypot hoặc một hàm hypot tổng hợp nếu không có sẵn, và để so sánh với hình vuông (mỗi câu trả lời của sch) nếu điều đó là đủ và Math.hypot không có sẵn.
bạn luôn có thể sử dụng [số 0x5f3759df kỳ diệu] (http://en.wikipedia.org/wiki/Fast_inverse_square_root) – violet313
Đó là cao quý của bạn muốn tăng tốc độ mỗi kịch bản có sử dụng công thức Pythagore. Tuy nhiên, tôi không nghĩ rằng một giải pháp chung tồn tại để làm cho công thức nhanh hơn (nếu không chúng tôi sẽ không sử dụng phiên bản 2.500 tuổi). Thay vì cố gắng làm cho công thức nhanh hơn, hãy cố gắng cấu trúc lại mã của bạn để bạn sử dụng công thức ít hơn, và chỉ sau khi bạn đã chứng minh rằng công thức là nút cổ chai trong hiệu suất mã của bạn. – Kevin
@Kevin: Trong C hoặc một số ngôn ngữ khác với chi phí thấp hơn, thực sự có xấp xỉ làm tăng tốc độ mọi thứ. Liệu tính xấp xỉ có hữu ích hay không phụ thuộc vào độ chính xác cần thiết của một mô hình, nhưng đối với vật lý trò chơi, nó sẽ đáng giá nếu nó làm cho gameplay trở nên linh hoạt hơn. –