求點到直線的垂足(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;
        }
發佈了44 篇原創文章 · 獲贊 25 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章