一段时间以来,我已经处理了一些数学知识,但我有些生疏,如果我问一个愚蠢的问题,请保持友善。
问题:我有n条线,它们以2D点数组的形式保存在内存中,因此没有显式函数。我必须检查一对上的线是否平行,这是一个非常容易的任务,因为足以检查它们的导数是否相同。
为了在算法中做到这一点,我必须检查函数的两个点之间的直线的斜率(我有),并且由于我不需要极高的精度,因此我可以使用简单的公式:
m =(y2-y1)/(x2-x1)
但这显然导致了x2 = x1的大问题。在这种情况下,我无法提供默认值。如何解决?
比较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] 删除。
我来说两句