2015-06-27 91 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