gpt4 book ai didi

ios - 使用 3 个 CGPoints 寻找角度

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:50:14 24 4
gpt4 key购买 nike

在我的应用程序中,用户点击 3 次,点击的 3 个点将创建一个角度。它完美地绘制了角度。我正在尝试计算第二次点击时的角度,但我认为我做错了(可能是数学错误)。我还没有在我的微积分课上讲过这个,所以我将使用维基百科上的公式。

http://en.wikipedia.org/wiki/Law_of_cosines

这是我正在尝试的:

注意:First、Second 和 Third 是在用户点击时创建的 CGPoints

        CGFloat xDistA = (second.x - third.x);
CGFloat yDistA = (second.y - third.y);
CGFloat a = sqrt((xDistA * xDistA) + (yDistA * yDistA));

CGFloat xDistB = (first.x - third.x);
CGFloat yDistB = (first.y - third.y);
CGFloat b = sqrt((xDistB * xDistB) + (yDistB * yDistB));

CGFloat xDistC = (second.x - first.x);
CGFloat yDistC = (second.y - first.y);
CGFloat c = sqrt((xDistC * xDistC) + (yDistC * yDistC));

CGFloat angle = acos(((a*a)+(b*b)-(c*c))/((2*(a)*(b))));

NSLog(@"FULL ANGLE IS: %f, ANGLE IS: %.2f",angle, angle);

有时,它给出的角度为 1,这对我来说没有意义。谁能解释这是为什么,或者如何解决?

最佳答案

不确定这是否是主要问题,但确实是个问题

你的答案给出了错误点的角度:

enter image description here

要获得绿色角度(根据变量名称“first”、“second”和“third”,这可能是您想要的角度),请使用:

CGFloat angle = acos(((a*a)+(c*c)-(b*b))/((2*(a)*(c))));

关于ios - 使用 3 个 CGPoints 寻找角度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20226804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com