Это часть учебного задания. Оно использует моё возвращённое значения для проверки длины от отрезка до точки в различных случаях. Я могу спокойно вернуть одну из них, но не знаю как это сделать вместе.
public static double GetDistanceToSegment(double ax, double ay, double bx, double by, double x, double y)
{
double result = 0;
double sabx = (ax + bx) / 2;
double saby = (ay + by) / 2;
double tandotrez1x = x - ax;
double tandotrez1y = y - ay;
double tandotrez2x = x - bx;
double tandotrez2y = y - by;
double otrezx = bx - ax;
double otrezy = by - ay;
double primouotrezx = sabx - x;
double primouotrezy = saby - y;
if ((otrezx*primouotrezx+otrezy*primouotrezy)==0)
{
result = Math.Pow(Math.Pow(primouotrezx, 2) + (Math.Pow(primouotrezy, 2)), 0.5);
}
return result;
double dlina1 = Math.Pow(Math.Pow(otrezx, 2) + Math.Pow(otrezy, 2), 0.5);
double dlina2 = Math.Pow(Math.Pow(tandotrez1x, 2) + Math.Pow(tandotrez1y, 2), 0.5);
double dlina3 = Math.Pow(Math.Pow(tandotrez2x, 2) + Math.Pow(tandotrez2y, 2), 0.5);
double poluperimetr = (dlina1 + dlina2 + dlina3) / 2;
double square = Math.Pow(poluperimetr*(poluperimetr-dlina1) * (poluperimetr - dlina2) * (poluperimetr - dlina3), 0.5); //S=1/2*h*a h=2S/a
double h = 2 * square / dlina1;
return h;
}