已经有一段时间了,因为我已经处理了一些数学问题而且我有点生疏,如果我问一个愚蠢的问题,请多好。
问题:我有n对线,它们作为2D点阵列保存在内存中,因此没有显式函数。我必须检查一对夫妇的线是否平行,这是一个非常简单的任务,因为它足以检查它们的衍生物是否相同。
要在算法中执行此操作,我必须检查函数的两个点之间的线的斜率(我有)并且由于我不需要极高的精度,我可以使用简单的公式:
m =(y2-y1)/(x2-x1)
但显然这引出了x2 = x1这个大问题。我无法为此案例提供默认值...我该如何解决它?
答案 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
这不会给出零除以及因为它避免了浮点除法,所以效率更高。