我在游戏中工作,我遇到了问题。我希望有人帮助我:
屏幕上有3个指定点
P0,P1,P2
P3 =我们需要找到的目标点(X3和Y3),如果我们有P1和P2位置。
我们提供了哪些信息:
1-P0位置(X,Y)已知。
2- P0和P1之间的距离已知
3- P0和P2之间的距离已知
4 - 红线和蓝线之间的角度已知
如何找到P1和P2的位置(x1,y1和x2,y2)?
第二个问题更重要:
2-如果我有P1和P2的位置,我怎样才能发现假想线上的P3通过P1和P2,P2之间的距离是一个特定的数字? (本例中为40)
答案 0 :(得分:1)
你可以通过一点矢量运算来解决第二个问题 矢量P1-> P2的长度是
d = sqrt((x2-x1)^2 + (y2-y1)^2)
因此,P1-> P2方向上的单位矢量
((x2-x1)/d, (y2-y1)/d)
将此乘以40得到P2-> P3
(40*(x2-x1)/d, 40*(y2-y1)/d)
最后,将P2-> P3添加到P2以获得P3
(x2 + 40*(x2-x1)/d, y2 + 40*(y2-y1)/d)
答案 1 :(得分:0)
如果第2部分有P1和P2:段P1P2与由θ= tan((P2.y-P1.y)/(P2.x-P1.x))给出的地平线形成一个角度,P3然后是(40 * cos(θ),40 * sin(θ))相对于P2(所以认为它是与P2的偏移)。
答案 2 :(得分:0)
您无法解决问题的第1部分。有一个已知的点P0和到未知点P1的距离。但是要计算P1的坐标,我们需要距离线1(蓝色)与x轴或y轴的角度。其他距离线(Dist2,红色)与另一个未知点(P2)之间只有一个角度。
因此,如果您有两个点之间的距离并且给出了一个点,则需要这两个点的距离线显示方向的信息。因此,您需要一个带x或y轴的角度。
这可转移到3-D Space。给出一点和另一点的距离。但在3-D中,我们需要两个角度来描述未知点的方向。在二维中,您有一个直角三角形来计算未知点的坐标。在三维中有两个直角三角形,很难画或想象。但是如果你使用三角形而不是矢量算术(参见Bens答案第2部分),你就可以在不学习矢量算术的情况下解决类似的问题。
也许你可以将矢量算术减少为三角形。