色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java點(diǎn)到線(xiàn)的距離和垂點(diǎn)

Java中求點(diǎn)到線(xiàn)的距離和垂點(diǎn),可以使用數(shù)學(xué)上的幾何公式來(lái)實(shí)現(xiàn)。

/**
* 計(jì)算點(diǎn) p 到線(xiàn)段 ab 的距離
* @param a 線(xiàn)段起點(diǎn)
* @param b 線(xiàn)段終點(diǎn)
* @param p 要計(jì)算距離的點(diǎn)
* @return 點(diǎn)到線(xiàn)段的距離
*/
public static double distancePointToLine(Point a, Point b, Point p) {
double distance = 0;
double k = (b.y - a.y) / (b.x - a.x);
double b1 = a.y - k * a.x;
distance = Math.abs(k * p.x - p.y + b1) / Math.sqrt(k * k + 1);
return distance;
}
/**
* 計(jì)算點(diǎn) p 到線(xiàn)段 ab 的垂點(diǎn)坐標(biāo)
* @param a 線(xiàn)段起點(diǎn)
* @param b 線(xiàn)段終點(diǎn)
* @param p 要計(jì)算垂點(diǎn)的點(diǎn)
* @return 垂點(diǎn)坐標(biāo)
*/
public static Point perpendicularPoint(Point a, Point b, Point p) {
double k = (b.y - a.y) / (b.x - a.x);
double b1 = a.y - k * a.x;
double x = (k * p.y + p.x - k * b1) / (k * k + 1);
double y = k * x + b1;
return new Point(x, y);
}

其中,distancePointToLine方法可以計(jì)算一個(gè)點(diǎn)p到線(xiàn)段ab的距離,需要傳入線(xiàn)段的起點(diǎn)和終點(diǎn),以及要計(jì)算距離的點(diǎn)。

perpendicularPoint方法可以計(jì)算一個(gè)點(diǎn)p到線(xiàn)段ab的垂點(diǎn)坐標(biāo),也需要傳入線(xiàn)段的起點(diǎn)和終點(diǎn),以及要計(jì)算垂點(diǎn)的點(diǎn)。