用C ++计算尖点的斜率

时间:2013-11-14 09:30:46

标签: c++ algorithm derivative

已经有一段时间了,因为我已经处理了一些数学问题而且我有点生疏,如果我问一个愚蠢的问题,请多好。

问题:我有n对线,它们作为2D点阵列保存在内存中,因此没有显式函数。我必须检查一对夫妇的线是否平行,这是一个非常简单的任务,因为它足以检查它们的衍生物是否相同。

要在算法中执行此操作,我必须检查函数的两个点之间的线的斜率(我有)并且由于我不需要极高的精度,我可以使用简单的公式:

m =(y2-y1)/(x2-x1)

但显然这引出了x2 = x1这个大问题。我无法为此案例提供默认值...我该如何解决它?

1 个答案:

答案 0 :(得分:3)

在2D中比较斜率的另一种方法如下:

    m1 = (y2-y1)/(x2-x1)

    m2 = (y4-y3)/(x4-x3)

as m1 = m2


(y2-y1)*(x4-x3) = (y4-y3)*(x2-x1) if lines are parallel 

这不会给出零除以及因为它避免了浮点除法,所以效率更高。