Parameters are assumed to be in radians, not degrees.
Try
Math.sin(Math.PI * (30/180));
A comment below notes that pre-computing the ratio π/180 is a good idea. One could add a companion to Math.sin
that works on degrees this way:
Math.dsin = function() {
var piRatio = Math.PI / 180;
return function dsin(degrees) {
return Math.sin(degrees * piRatio);
};
}();
(Some people don't like extending built-in objects, but since one doesn't instantiate Math instances — at least, I don't — this doesn't seem terribly offensive.)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…