我认为这是一个基本问题,但我的数学技能缺乏。
我正在开发一款iphone游戏,人们可以利用自己的平台来反弹鸡蛋。
游戏由一个连接2个节点的平台组成,每个节点都有一个x和y值,这个平台可以处于任何角度,具体取决于用户如何绘制它,当某些东西击中这个平台时,我需要它垂直击中。我知道我需要多少总功率,如何在X和Y之间分解它。我画了一张图片来更好地解释......
以下是两个例子,我对这个问题的信息是X&节点的Y坐标,以及虚线垂直线的长度。我需要找到的是X和Y线的长度,以及X是正向还是负向。
答案 0 :(得分: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
答案 1 :(得分:1)
如果您的两个点是A
和B
,并且线条的长度为L
,则首先需要找到相对于AB
的角度theta = atan( (B.x - A.x) / (B.y - A.y) )
x轴:
x
有了这个,你可以这样找出y
和x = L * cos( theta )
y = L * sin( theta )
:
x=0
您必须考虑的唯一边缘情况是水平线(在这种情况下,计算将失败,因为在计算θ时除以零)。如果是水平线,y=L
和{{1}}。