好的,所以我需要让C走到从A到B的最短路径.A到B是我的直角三角形的斜边,我需要给C这个三角形的arctan。我该怎么做,公式有名字吗?
答案 0 :(得分:3)
目前尚不清楚你究竟在问什么,但我认为你正试图找到A-B线的角度。我将假设您知道,或者可以找出A和B的(x,y)坐标,否则您将无法解决问题。
听起来你已经概述了大部分解决方案......角度将等于(y / x)距离的arctan。因此,如果我们将A(y)视为A的y坐标,那么你会看到类似的东西:
arctan ((A(y) - B(y)) / (A(x) - B(x)))
这有帮助吗?或者你在寻找略有不同的东西吗?
编辑:有一点需要注意的是你考虑这些条款的顺序(无论你是从A到B还是从A到B),等等。你必须要考虑到这一点,否则你最终可能会有一些迹象问题。
答案 1 :(得分:2)
大多数系统都有Arctan2(dy, dx)
,它会给你一个整圆的角度(并照顾垂直),所以你会说Arctan2((By - Ay), (Bx - Ax))
以弧度(逆时针方向从东)获得方向。对于度数乘以360/(2*PI)
。
确保A!= B。
答案 2 :(得分:1)
Arctan会产生度数或弧度,所以你的A和B很可能有像(x,y)这样的坐标。然后你做arctan((By - Ay)/(Bx - Ax))如果我没记错的话,这里Bx是B等的x坐标。
如果A和B没有坐标,则无法有意义地获得度数。
答案 3 :(得分:1)
如果你只有一个长度并且这里没有隐藏的假设(比方说,三角形的一边已经标准化):你不能。< / p>
一个有趣的隐藏假设可能是:
然后问题很难。
如果A
和B
是点,那么你想要的角度可以推测为x轴,你可以得到它(使用堡垒名称):
atan((B.y - A.y)/(B.x - A.x))
或者如果你的库中有它
atan2((B.y - A.y),(B.x - A.x))
整齐地处理除零的情况......
答案 4 :(得分:0)
如果A到B是你的直角三角形的斜边,A到B也将是从A到B的最短路径,因为它是点之间的直线。
您可以通过将相邻边的长度除以相对边的长度来计算任意非直角的反正切,因为它是切线的倒数。但是,根据你所描述的信息,你将缺少分子或分母。
无限数量的直角三角形具有给定长度的斜边。