【问题标题】:Trigonometry on Obj-CObj-C 上的三角函数
【发布时间】:2014-04-18 15:41:02
【问题描述】:

我正在尝试使用三角函数来查找距离和类似的..

虽然目前,我相信我的公式是正确的,但是在使用具有特定度数的 sin、cos、tan 时,我得到的度数不正确

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

如你所见,Fita 是 45º

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

【问题讨论】:

  • 你正在混合 gedrees 和 radiants。
  • 或者,更清楚地说,当你应该使用弧度时,你使用了度数。

标签: ios trigonometry


【解决方案1】:

C 数学函数(例如 sin)期望它们的参数以弧度为单位,而不是度数。

【讨论】:

    【解决方案2】:

    你需要做的

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

    将度数转换为弧度。这是度数到弧度的转换系数。

    【讨论】:

    • 不,M_PI_2pi/2,而不是 pi/180
    • 感谢您的回答,我不知道弧度会是使用的主要值。
    • @DanielWatson - 弧度是数学的标准,自 FORTRAN 以来几乎所有三角函数都使用弧度。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-03
    • 1970-01-01
    相关资源
    最近更新 更多