2014-04-18 26 views
-2

我试图用三角找到距离和像我..三角上的OBJ-C

目前虽然,我相信我的公式是正确的,但使用时的罪,我得到一个不正确度,COS,棕褐色与特定程度

double hypotenuse = [distanceOnTimeScale.text doubleValue]; 

double fita = 90 - probeAngle; 

double sinFita = sin(fita); 

double hypCheck = (opposite/sinFita); 

double secondLeg = hypotenuse - hypCheck; 

double adjacent = (opposite/tan(fita)); 

NSLog(@"Opposite: %.1f", opposite); 
NSLog(@"Fita: %.1f", fita); 
NSLog(@"Hypotenuse: %.1f", hypotenuse); 
NSLog(@"Hyp Check: %.1f", hypCheck); 
NSLog(@"FITA: %f", sinFita); 

输出

2014-04-18 16:35:51.988 ---[7316:60b] Opposite: 10.0 
2014-04-18 16:35:51.991 ---[7316:60b] Fita: 45.0 
2014-04-18 16:35:51.992 ---[7316:60b] Hypotenuse: 0.0 
2014-04-18 16:35:51.993 ---[7316:60b] Hyp Check: 12.4 
2014-04-18 16:35:51.994 ---[7316:60b] FITA: 0.806075 

正如你可以看到菲塔是45度

所以,sinFita应该等于0.707106781186547它不,为什么我会遇到这个问题?

+1

您正在混合gedrees和辐射剂。 –

+0

或者,为了更清楚地说明,当您使用弧度时,您正在使用度数。 –

回答

1

你需要做的

double sinFita = sin(fita * M_PI/180); 

为度转换为弧度。从度数到弧度的换算系数。

+0

不,“M_PI_2”是“pi/2”,而不是“pi/180”。 – rmaddy

+0

oops。感谢rmaddy。 –

+0

谢谢你的回答,我不知道弧度将成为主要使用的值。 –

5

C数学函数(例如sin)希望它们的参数是弧度而不是度数。