两点之间的线斜率与相同的X.

时间:2012-07-26 10:54:41

标签: math 2d point

我正在实施2D足球比赛。对于我的传递算法,我使用等式m = (y2-y1)/(x2-x1)

计算传球者和接收者之间的斜率

在某些情况下,x2x1相等,导致除以零的异常。在这种情况下我该怎么做?

我没有在math.stackexchange.com上提出这个问题,因为这是一个编程问题。

2 个答案:

答案 0 :(得分:4)

请勿使用线的斜率进行此类操作,原因只是您偶然发现了。而是使用从传球者到传球手的线的角度。应用一点三角学。如果那个小三角法超出你的范围,请删除这个问题,做一些工作,然后再次发卡时重新发布。

修改

我建议你使用三角学有两个原因。

  1. 因为具有相同x坐标的两个点之间的线的斜率是不确定的。是的,正如另一个答案所暗示的那样,当x坐标相同时,你可以摆弄并使斜率成为一个非常大的值,但是当三角法无论x和y坐标产生一个角度时,它都是不必要的折衷。可用。
  2. 三角函数法将为您提供从传球者到传球手的角度值的自然解释。以90度的角度传球(π/ 2弧度,虽然我不确定很多足球运动员或球迷在比赛中想到弧度的角度)意味着一个跨场传球(我假设你的y轴对齐在你的音高的长轴上,180度角的传球是后传,等等。

答案 1 :(得分:1)

如果您想跳过Trig应用程序,可以查看if(x1 != x2) //whatever math needs to be done

这样,如果x是相等的,你可以在else语句中为“flat pass”设置自己的值,而不必再担心除以零的异常。

祝你选择的任何路线都好运! (如果你有时间学习它,我建议使用Trig(如有必要))