从两个CGPoint中获取一条线

时间:2013-10-15 15:42:54

标签: ios geometry algebra cgpoint

考虑到两个CGPoints,让我们说P1和P2,我想:

  • 找到连接它们的行
  • 找到该行的所有CGPoints

有什么建议吗?


就目前而言,我有以下方法来推导出各点:

1)我首先从定义为的线的等式开始    以下内容:

y = m * x + b

2)找到m:

m = (P2.y - P1.y) / (P2.x - P2.x)

然后,为了找到b,我们将记住该线的等式,我们可以将它应用于我们所拥有的两个点中的任何一个(P1和P2),所以:

b = y - m*x 

变为:

b = P1.y - m*P1.x (where we have both P1 and m)

该等式具有预期,当P1和P2一个在另一个之上时(P1.x == P2.x)。在这种情况下,成为x不变化的等式,因此我们只有一个由该点的y部分定义的变量。

[相关链接。查找/推导此类答案的良好互动指南是here。]

1 个答案:

答案 0 :(得分:2)

至少这是错误的:

m = (P2.y - P1.y) / (P2.x - P2.x)

应该是

m = (P2.y - P1.y) / (P2.x - P1.x)

或更好

   denom = P2.x - P1.x;

   if (denom != 0) {
     m = (P2.y - P1.y) / denom;
   } else {
     //handle special case
     m = 0;
   }

从您的评论中我发现您想要使用rectangualr boundin框对线进行碰撞检测。 所以我会搜索“线和矩形交叉点”。结果给出了交点:如果有交点,则该线已经到达了边界矩形。