Objective-C三角测量



我现在对trig感到很痛苦。

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-06-27 17:36:14.565相反=-0.51*183.27=-92.94

2015-06-27 17:36:14.565相邻=-0.86*183.27=-157.95

这显然是错误的,因为它们角度的正弦和余弦是不正确的。角度为15.18º,所以我不太确定我错在哪里,除非。。它们又被转换成弧度了吗?然而,我不太确定我哪里错了。。这是错误的。

触发公式为

tan(angle) = opposite / adjacent

因此,要从边长得到角度,需要使用反正切,即atan2。

double angle = atan2(opposite, adjacent);

从那里开始,只要您知道atan2返回一个以弧度为单位的角度,您的代码的其余部分就可以工作(所以您的第二行是不必要的)。

最新更新