求點到直線的垂足(C#代碼)
/// <summary>
/// 求點到直線的垂足
/// </summary>
/// <param name="x1">點橫座標</param>
/// <param name="y1">點縱座標</param>
/// <param name="A">直線方程一般式係數A</param>
/// <param name="B">直線方程一般式係數B</param>
/// <param name="C">直線方程一般式係數C</param>
/// <param name="x">垂足橫座標</param>
/// <param name="y">垂足縱座標</param>
/// <returns>成功返回真,失敗返回假</returns>
public static bool footOfPerpendicular(double x1, double y1, double A, double B, double C, ref double x,ref double y)
{
if (A * A + B * B < 1e-13) return false;
if (Math.Abs(A * x1 + B * y1 + C) < 1e-13)
{
x = x1;
y = y1;
}
else
{
x = (B * B * x1 - A * B * y1 - A * C) / (A * A + B * B);
y = (-A * B * x1 + A * A * y1 - B * C) / (A * A + B * B);
}
return true;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.