续一
//关于线的一些算法
public class GeometricClass
{
/* 判断点与线段的关系,用途很广泛
本函数是根据下面的公式写的,P是点C到线段AB所在直线的垂足
AC dot AB
r = ---------
||AB||^2
(Cx-Ax)(Bx-Ax) + (Cy-Ay)(By-Ay)
= -------------------------------
L^2
r has the following meaning:
r=0 P = A
r=1 P = B
r<0 P is on the backward extension of AB
r>1 P is on the forward extension of AB
0<r<1 P is interior to AB
*/
public static double RelationOfPointAndLine(SpatialPoint p, SpatialLine l)
{
SpatialLine tl = new SpatialLine();
tl.startPoint = l.startPoint;
tl.endPoint = p;
return dotmultiply(tl.endPoint, l.endPoint, l.startPoint) / (CalculateFlatDistance(l.startPoint, l.endPoint) * CalculateFlatDistance(l.startPoint, l.endPoint));
}
// 根据已知两点坐标,求过这两点的直线解析方程: a*x+b*y+c = 0 (a >= 0)
public static SpatialLine Makeline(SpatialPoint p1, SpatialPoint p2)
{
SpatialLine tl = new SpatialLine();
int sign = 1;
tl.a =