2015-06-27 51 views
0

我現在很痛苦,Objective-C三角函數

double angle = tan(opposite/adjacent); 
angle = (angle) * (180.0/M_PI); 

找到它們的細節角度,在這種情況下,我們會說它等於從弧度轉換後的15.18º。

然後,以找到相鄰的,並與我做同樣的角度新斜邊相對..

double oppAngle = sin(angle); 
double adjAngle = cos(angle); 

double secondOpposite = newDistance * oppAngle; 
double secondAdjacent = newDistance * adjAngle; 

NSLog(@"opposite = %.2f * %.2f = %.2f", oppAngle, newDistance, secondOpposite); 
NSLog(@"Adjacent = %.2f * %.2f = %.2f", adjAngle, newDistance, secondAdjacent); 

即日誌,

2015年6月27日17:36:14.565相反= -0.51 * 183.27 = -92.94

2015年6月27日17:36:14.565鄰近= -0.86 * 183.27 = -157.95

這顯然是錯誤的,因爲他們的正弦和餘弦角度incorr等。角度記錄15.18º,所以我不太確定我要出錯的地方,除非..他們再次轉換爲弧度?我不太確定我要去哪裏,但是......這是錯的。

回答

4

的三角函數公式是

tan(angle) = opposite/adjacent 

所以從側面長度得到的角度,你需要使用反正切,這是atan2

double angle = atan2(opposite, adjacent); 

從那裏,你的代碼的其餘部分,只要你知道,ATAN2返回弧度(所以你第二行是不必要的)的角度工作。

+0

它現在完美運作,但我仍然對程序有點困惑。你給了我。 – Daniel

+0

我現在明白了,謝謝。 – Daniel