public static void Main()
double ans=GetDistanceToSegment(-10,0,10,0,0,10);
public static double GetDistanceToSegment(double ax, double ay, double bx, double by, double x, double y)
double a = Math.Sqrt((bx-ax)*(bx-ax)+(by-ay)*(by-ay));
double b = Math.Sqrt((ax-x)*(ax-x)+(ay-y)*(ay-y));
double c = Math.Sqrt((bx-x)*(bx-x)+(by-y)*(by-y));
if (((x<ax)&&(y<ay)&&(x<bx)&&(y<by)) || ((x>ax)&&(y>ay)&&(x>bx)&&(y>by)))
if (((x==ax) && (y==ay)) || ((x==bx) && (y==by)))
if ((ax==bx) && (ay==by))
h = (2*Math.Sqrt(p*(p-a)*(p-b)*(p-c)))/a;