在C ++中计算尖峰的斜率

伊萨姆TP

一段时间以来,我已经处理了一些数学知识,但我有些生疏,如果我问一个愚蠢的问题,请保持友善。

问题:我有n条线,它们以2D点数组的形式保存在内存中,因此没有显式函数。我必须检查一对上的线是否平行,这是一个非常容易的任务,因为足以检查它们的导数是否相同。

为了在算法中做到这一点,我必须检查函数的两个点之间的直线的斜率(我有),并且由于我不需要极高的精度,因此我可以使用简单的公式:

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

但这显然导致了x2 = x1的大问题。在这种情况下,我无法提供默认值。如何解决?

维克拉姆·巴特(Vikram Bhat)

比较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 

这不会导致被零除,而且效率更高,因为它避免了浮点除法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章