java点到直线距离_求取点到直线的距离
問題描述:
已知點P(px,py),直線L(P1,P2),求點P到L的距離。
首先,推導直線公式:
點$$P_1(x_1,y_1)$$, 點$$P_2(x_2,y_2)$$ 可知直線方程為:
$$x(y_2-y_1)-y(x_2-x_1)+y_1(x_2-x_1)-x_1(y_2-y_1)=0$$
點$$P_0(x_0,y_0)$$ 到$$P_1P_2$$的距離如下:
$$\begin{array}{rcl}dist & = & \frac{\left|x_0(y_2-y_1)-y_0(x_2-x_1)+y_1(x_2-x_1)-x_1(y_2-y_1)\right|}{\sqrt{(y_2-y_1)^2+(x_2-x_1)^2}} \\& = & \frac{\left|(y_2-y_1)*(x_0-x_1)-(x_2-x_1)*(y_0-y_1)\right|}{\sqrt{(y_2-y_1)^2+(x_2-x_1)^2}}\end{array}$$
代碼如下所示:
1 double getDistFromP2L(double px, double py, double p1x, double p1y, double p2x,
double p2y)
{
double y2_y1 = p2y - p1y;
double x2_x1 = p2x - p1x;
if (fabs(y2_y1) < EOPS && fabs(y2_y1) < EOPS) {
return 0.0;
}
return fabs(y2_y1 * (px - p1x) -
x2_x1 * (py - p1y)) / sqrt(y2_y1 * y2_y1 + x2_x1 * x2_x1);
}
關于找一找教程網
本站文章僅代表作者觀點,不代表本站立場,所有文章非營利性免費分享。
本站提供了軟件編程、網站開發技術、服務器運維、人工智能等等IT技術文章,希望廣大程序員努力學習,讓我們用科技改變世界。
[求取點到直線的距離]http://www.zyiz.net/tech/detail-126164.html
總結
以上是生活随笔為你收集整理的java点到直线距离_求取点到直线的距离的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux hid 设备驱动,linux
- 下一篇: 广东移动 - 无线应用加速业务系统