在二维平面上,给定两条线段 AB 和 CD,其中 A(xa, ya), B(xb, yb), C(xc, yc), D(xd, yd)。判断这两条线段是否相交,以下哪种方法能最准确地处理线段共线的情况,同时避免不必要的浮点数精度问题?
答案解析
选项 A 在处理共线情况时无法有效判断。选项 B 的交点计算涉及到浮点数除法,可能产生精度误差,且共线时除数可能为零,需要特殊处理,计算过程复杂。选项 C 通过叉积来判断相对位置,可以避免除法运算带来的浮点数误差,且能正确处理共线的情况。当 C 和 D 在 AB 两侧,且 A 和 B 在 CD 两侧时,线段相交。选项 D 仅能判断直线是否相交,无法处理线段的情况,特别是当线段平行时无法判断是否相交。
正确答案:C