如何判断一个点是否是一条线的一部分?

时间:2013-03-14 18:04:34

标签: wpf math geometry

给定一条由两点(A,B)定义的直线如何判断另一个点(C)是否在该线上,WPF是否具有内置函数,因为我使用路径来表示线或者我是必须写一个函数。如果后者是真的,任何帮助将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:2)

如果它们形成的角度为180度,则三个点是共线的。或者换句话说,线段AB,AC和BC的斜率都相等。

求解斜率:[AB].y/[AB].x = [AC].y/[AC].x给出了以下很好的函数:

bool AreCollinear(Point A, Point B, Point C) 
{
    double slopesDelta = (A.y - B.y) * (A.x - C.x) - (A.y - C.y) * (A.x - B.x);
    double tolerance = 1e-6;                // substitute for your own tolerance
    return tolerance > Math.Abs(slopesDelta);
}
相关问题