1

我认为这将是一个基本问题,但是我缺乏数学技能。

我正在开发一款 iPhone 游戏,人们在其中绘制自己的平台来弹起鸡蛋。

游戏由一个连接 2 个节点的平台组成,每个节点都有一个 x 和 y 值,这个平台可以是任何角度,这取决于用户如何绘制它,当有东西撞击这个平台时,我需要它垂直撞击。我知道我需要多少总功率,我将如何在 X 和 Y 之间分解它。我画了一张图片来更好地解释......

我的问题的两个示例,每个示例针对不同的方向

这是两个示例,我对问题的了解是节点的 X 和 Y 坐标,以及虚线垂直线的长度。我需要找到的是 X 和 Y 线的长度,以及 X 是朝正方向还是负方向。

4

2 回答 2

2

如果您有两个节点 N1 和 N2,线长为 L,则:

ndx = N1.x - N2.x
ndy = N1.y - N2.y
ndist = sqrt(ndx*ndx + ndy*ndy)
x = ndy * L / ndist
y = ndx * L / ndist
于 2012-06-08T22:13:42.287 回答
1

如果您的两个点是AB,并且您的线的长度是L,您首先需要找到AB相对于 x 轴的角度:

theta = atan( (B.x - A.x) / (B.y - A.y) )

有了这个,你可以弄清楚xy因此:

x = L * cos( theta )
y = L * sin( theta )

您必须考虑的唯一边缘情况是水平线(在这种情况下,由于在计算 theta 时除以零,计算将失败)。在水平线的情况下,x=0并且y=L

于 2012-06-08T23:55:00.293 回答