Khi tôi làm việc với toán học trong JS, tôi muốn các hàm trig của nó sử dụng các giá trị độ thay vì các giá trị radian. Tôi sẽ làm như thế nào?Làm thế nào tôi có thể phạm tội, cos và tan để sử dụng độ thay vì radian?
Trả lời
Bạn có thể sử dụng một chức năng như thế này để làm việc chuyển đổi:
function toDegrees (angle) {
return angle * (180/Math.PI);
}
Lưu ý rằng các chức năng như sin
, cos
, và vân vân không gửi lại góc, họ mất góc như đầu vào. Dường như với tôi rằng nó sẽ hữu ích hơn cho bạn để có một chức năng có thể chuyển đổi một đầu vào mức độ radian, như thế này:
function toRadians (angle) {
return angle * (Math.PI/180);
}
mà bạn có thể sử dụng để làm điều gì đó như tan(toRadians(45))
.
Nhân kết quả theo số 180/Math.PI
để chuyển đổi từ radian thành độ.
Bạn cũng có thể xác định chức năng của riêng bạn:
function sinDegrees(angle) {return Math.sin(angle/180*Math.PI);};
và vân vân.
Điều này thực sự nên được đặt tên là 'sinDegrees' để tránh nhầm lẫn –
Đúng. Tôi đã nhìn thấy một số trang web gọi là 'sind' để giữ cho nó ngắn. Cá nhân tôi giữ nó thành 'tội lỗi' bởi vì tôi biết rằng 'tội lỗi' sau đó sẽ là bằng cấp và 'Math.sin' trong radian, nhưng đó là trên đầu của tôi. –
-1: sin() không trả về một góc. Đối số đầu vào của nó là một góc. –
Tạo chức năng chuyển đổi của riêng bạn để áp dụng toán học cần thiết và thay vào đó gọi hàm đó. http://en.wikipedia.org/wiki/Radian#Conversion_between_radians_and_degrees
Trong khi điều này về mặt lý thuyết có thể trả lời câu hỏi, [nó sẽ là thích hợp hơn] (http: // meta. stackexchange.com/q/8259) để bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. –
tôi đã tạo riêng chút lười biếng Toán-Object của tôi cho độ (MathD), hy vọng nó sẽ giúp:
//helper
/**
* converts degree to radians
* @param degree
* @returns {number}
*/
var toRadians = function (degree) {
return degree * (Math.PI/180);
};
/**
* Converts radian to degree
* @param radians
* @returns {number}
*/
var toDegree = function (radians) {
return radians * (180/Math.PI);
}
/**
* Rounds a number mathematical correct to the number of decimals
* @param number
* @param decimals (optional, default: 5)
* @returns {number}
*/
var roundNumber = function(number, decimals) {
decimals = decimals || 5;
return Math.round(number * Math.pow(10, decimals))/Math.pow(10, decimals);
}
//the object
var MathD = {
sin: function(number){
return roundNumber(Math.sin(toRadians(number)));
},
cos: function(number){
return roundNumber(Math.cos(toRadians(number)));
},
tan: function(number){
return roundNumber(Math.tan(toRadians(number)));
},
asin: function(number){
return roundNumber(toDegree(Math.asin(number)));
},
acos: function(number){
return roundNumber(toDegree(Math.acos(number)));
},
atan: function(number){
return roundNumber(toDegree(Math.atan(number)));
}
};
Tôi thích một cách tiếp cận chức năng tổng quát hơn:
/**
* converts a trig function taking radians to degrees
* @param {function} trigFunc - eg. Math.cos, Math.sin, etc.
* @param {number} angle - in degrees
* @returns {number}
*/
const dTrig = (trigFunc, angle) => trigFunc(angle * Math.PI/180);
hay,
function dTrig(trigFunc, angle) {
return trigFunc(angle * Math.PI/180);
}
có thể được sử dụng với bất kỳ chức năng lấy radian nào:
dTrig(Math.sin, 90);
// -> 1
dTrig(Math.tan, 180);
// -> 0
Hy vọng điều này sẽ hữu ích!
- 1. cos độ không khớp với cos của radian tương đương
- 2. Tôi có thể sử dụng SafeHandle thay vì IntPtr không?
- 3. Làm thế nào để sử dụng getnameinfo thay vì gethostbyname?
- 4. Làm thế nào để sử dụng CURL thay vì file_get_contents?
- 5. Tôi đang sử dụng Python regexes theo cách tội phạm không hiệu quả
- 6. Làm thế nào để tôi có được độ phân giải có thể sử dụng thực
- 7. Rails3 Làm thế nào tôi có thể sử dụng: params trong phạm vi được đặt tên?
- 8. Làm thế nào để sử dụng vòng lặp của riêng tôi với pyhook thay vì pumpMessages()?
- 9. Làm thế nào để tránh mức độ này đến lỗi radian?
- 10. Làm thế nào để sử dụng SSL3 thay vì TLS trong một HttpWebRequest cụ thể?
- 11. Tôi có nên sử dụng NoSQL thay vì MySQL không?
- 12. Làm thế nào tôi có thể sửa "Chuỗi dự kiến thay vì thấy" "" bằng cách sử dụng jslint?
- 13. Khi nào có quyền sử dụng Chế độ xem thay vì Chế độ xem?
- 14. Làm cách nào để tôi có thể sử dụng phiên bản Rails thay vì cookie của riêng mình?
- 15. Khi nào tôi sẽ sử dụng XML thay vì SQL?
- 16. Làm thế nào tôi có thể sử dụng Perl 32 bit để làm tan một thứ gì đó bị đóng băng với Stacks 64 bit?
- 17. Khi nào và làm thế nào tôi nên sử dụng các lớp liệt kê thay vì enums?
- 18. Tôi có nên sử dụng String thay vì TFilename không?
- 19. Khi nào tôi nên sử dụng UserControl thay vì Trang?
- 20. (Làm cách nào) tôi có thể sử dụng ServerSocket để nghe UDP thay vì lưu lượng TCP?
- 21. Tôi không thể tìm thấy điều này: Làm cách nào để sử dụng 4 SPACES thay vì TAB trong EMACS?
- 22. Làm thế nào để tôi có được tên vị trí hoặc thành phố sử dụng vĩ độ và kinh độ?
- 23. Khi nào tôi nên sử dụng UIImagePickerControllerSourceTypePhotoLibrary thay vì UIImagePickerControllerSourceTypeSavedPhotosAlbum?
- 24. Làm thế nào để sử dụng đa thức thay vì bit để cải thiện hiệu suất?
- 25. Làm thế nào tôi có thể nhận được xtabs để tính toán phương tiện thay vì tổng trong R?
- 26. Tôi có thể buộc window.location thực hiện yêu cầu HTTP thay vì sử dụng bộ nhớ cache như thế nào?
- 27. Làm thế nào tôi có thể sử dụng SUM() OVER()
- 28. vẽ tiêu tan dòng sử dụng CALayer
- 29. Exponentiation in Python - tôi có nên sử dụng toán tử thay vì math.pow và math.sqrt không?
- 30. Tôi làm cách nào để lưu email thay vì gửi khi sử dụng SmtpClient?
sin/cos/tan không trả về các góc theo radian; chúng có góc theo radian. Các hàm nghịch đảo 'atan()', 'atan2()', 'acos()', 'asin()' các góc trả về. –