Math 找到具有给定向量和固定高度的点

Math 找到具有给定向量和固定高度的点,math,vector,Math,Vector,点A作为球员的眼睛 点B作为障碍物的边缘 点C作为玩家可以看到的有限范围(C.y=B.y+2) 如何用给定的信息找到C点?连接A和B的线是y=m*x+n 斜率:m=(按Ay)/(Bx Ax) 截距:n=Ay-m*Ax 您已经有了Cy=By+H 因此,为了找到Cx,我们将上述所有内容插入直线方程: Cy=m*Cx+n Cx=(By+H-n)/m根据这个,如果你知道角度A,那么B是相同的。如果你知道BC三角形的高度,那么你可以用一些三角来计算到C的距离 我自己也不是数学天才,但下面是直角三角形的关

点A作为球员的眼睛

点B作为障碍物的边缘

点C作为玩家可以看到的有限范围(C.y=B.y+2)


如何用给定的信息找到C点?

连接A和B的线是y=m*x+n

斜率:m=(按Ay)/(Bx Ax)

截距:n=Ay-m*Ax

您已经有了Cy=By+H

因此,为了找到Cx,我们将上述所有内容插入直线方程:

Cy=m*Cx+n


Cx=(By+H-n)/m

根据这个,如果你知道角度A,那么B是相同的。如果你知道BC三角形的高度,那么你可以用一些三角来计算到C的距离

我自己也不是数学天才,但下面是直角三角形的关系

现在,如果我们把BC三角形的右下角顶点称为“D”,我们可以做这个数学运算。我们将寻找相邻边的长度:

Tan(B)=CD/DB |从这个开始。因为我们知道相反的方向,我们想找到相邻的方向,所以我们使用切线

DB*Tan(B)=CD |现在将两侧乘以DB,将其移到左侧

DB=CD/Tan(B)|然后将两侧除以Tan(B)得到未知的DB

现在我们知道了,你可以直接输入数字。假设角度B=45度,固定高度为2

DB=2/tan(45)

DB=2/1

DB=2

(请原谅这个糟糕的剪报工作)

所以这些函数存在于Mathf类中,在试图理解它时只需参考图表


而且时间已经很晚了,如果有人注意到错误,请随时更正。

如果我们假设一个点是坐标原点:

 C.Y = B.Y + H
 C.Y / B.Y = C.X / B.X   // triangles similarity
 C.X = B.X * (B.Y + H) / B.Y = B.X * (1 + H/B.Y)

这看起来像是一个简单的例子,只是使用相似的三角形来解决缺少的值。或者,如果你知道A的角度,你可以使用三角学(在本例中,是余弦比)。你有没有试过为这两种方法中的任何一种(或任何一种)查找公式?@Serlite我的数学不是很好(实际上我把它们都忘了)是的,我可以计算A的角度。我投票结束这个问题,因为它是关于几何学的,而不是编程或软件开发。