投影點公式 , 懶的再搞複雜的數學公式... 直接copy 網路的...
設 表一直線L, ,
A在L之投影點的座標為
個人喜好 y=Ax+B so~~~ f(x,y) = Ax+B-y
因此可以得出下面function !!!
/// <summary> /// Get Point To Line Projection Points //Ming /// </summary> /// <param name="p_dA">y=Ax+B is A Value </param> /// <param name="p_dB">y=Ax+B is B Value</param> /// <param name="p_iX">(x,y) point X Value</param> /// <param name="p_iY">(x,y) point Y Value</param> /// <returns>Projection Points</returns> private double[] ProjectionPoints(double p_dA, double p_dB, int p_iX, int p_iY) { double[] l_dReturn = new double[2]; double l_dTemp1 = (p_dA * p_iX - p_iY + p_dB); double l_dTemp2 = p_dA * p_dA + 1; l_dReturn[0] = p_iX - (p_dA * l_dTemp1 / l_dTemp2); l_dReturn[1] = p_iY - (-1 * l_dTemp1 / l_dTemp2); return l_dReturn ; }
Input ( y=Ax+B & (x,y) )
=> A , B , x , y
Output ( Projection Points )
=> x , y