0

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

4

1 回答 1

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);
}
于 2013-03-14T18:07:24.257 回答