2013-05-05 15 views
0

在我的代碼,我有:爲什麼我的程序使電腦看起來做不好的三角?

console.log(distance_along); 
console.log('Cosine: ' + Math.cos(2 * Math.PI * distance_along)); 
var added_degrees = 
    (ANCIENT_CLOCK.cos(2 * Math.PI * distance_along) * ANCIENT_CLOCK.earth_tilt); 

這將產生輸出:

-0.2567721374914637 
Cosine: -0.04253775592822526 

隨着越來越多的代碼在http://JonathansCorner.com/ancient-clock

我做了什麼錯,我怎麼能解決這個問題?第一個記錄值以弧度爲單位(以2 π的乘數爲模),第二個記錄值是完全不同數字的餘弦值。爲什麼?

我以前的帖子給人的印象是我不知道Math.cos()。我確實知道Math.cos(),並且不知道爲什麼它會爲其他人在JavaScript和PHP中報告的cos(-0.2567721374914637)產生差異值。

我正在運行Mint Chrome。

+3

你想到'COS(-0.2567721374914637)'和'cos(2 * Math.PI * -0.2567721374914637)'是相同的值? – 2013-05-05 23:59:55

+0

可能重複[如何在JavaScript中使用trig?](http://stackoverflow.com/questions/16387316/how-does-trig-work-in-javascript) – 2013-05-06 00:04:56

+0

我也很困惑,javascripts'Math.cos (-1.6)'='〜-0.029',但我的Windows計算器說'cos(-1.6)'='〜1' – 2013-05-06 00:07:43

回答

2
console.log(distance_along); // -0.2567721374914637 
console.log(Math.cos(2 * Math.PI * distance_along)); // -0.04253775592822526 

我做了什麼錯,我怎麼能解決這個問題?第一個記錄值以弧度爲單位(以2π的乘數爲模),第二個記錄值是完全不同數字的餘弦值。爲什麼?

因爲您乘以2π的弧度數,這是完全不同的數字。然而,Math.cos確實期望其參數以弧度表示。使用

console.log(Math.cos(distance_along)); // 0.9672147629178562 
2

@jonathanhayward我覺得你有與三角函數和/或三角函數的概念問題。

我讀過你的問題5倍,想您所想:

console.log(Math.cos(distance_along)); 
console.log('Cosine: ' + Math.cos(2 * Math.PI + distance_along)); 

OR

console.log(distance_along); 
console.log('Cosine: ' + (Math.cos(2 * Math.PI) * distance_along)); 

FYI:

Math.cos(2 * Math.PI + distance_along) == Math.cos(distance_along) // is true 
相關問題