docs: public  double distancePointLine(Point2D.Double p1,Point2D.Double p2,Point2D.Double p){
  		double d;
  		double m = (p2.y-p1.y)/(p2.x-p1.x);
  		
  		if(Double.isInfinite(m))
  		{
  			d = Math.abs(p2.x-p.x);
  		}
  		else{
  			double k = -1*m*p1.x+p1.y;
  			d = Math.sqrt( Math.pow( (p.x+m*p.y-m*k)/(m*m+1)-p.x , 2) + Math.pow( m*( (p.x+m*p.y-m*k)/(m*m+1))+k-p.y , 2));
  		}
  		return d;
  	}