Найти расстояние между треугольником и окружностью - C (СИ)
Формулировка задачи:
Найти расстояние между заданными на плоскости треугольником и окружностью. Между треугольником и окружностью можно провести разграничительную линию (это условие не проверять). Треугольник задается вершинами A(x_a, y_a), B(x_b, y_b) и С(x_с, y_с). Окружность задается центром M (x_m, y_m) и радиусом r.
Формат входных данных: [x_a] [y_a] [x_b] [y_b] [x_с] [y_с] [x_m] [y_m] [r]. Координаты задаются целыми числами в диапазоне ±1000. Радиус задается целым числом в диапазоне [1, 100].
Пример: 0 0 1 5 3 8 4 3 22
Формат выходных данных: [расстояние]. Расстояние представляется вещественным число с точностью до двух знаков.
Пример: 9.21
Решение задачи: «Найти расстояние между треугольником и окружностью»
textual
Листинг программы
//подсчет расстояния вершин треугольника от точки М r2=pow(pow((double)x_b-(double)x_m,2)+pow((double)y_b-(double)y_m,2),0.1/0.2);//B if ((r2<=r1) && (r2<=r3)&&(stope==false))//если точка B ближе { D1=r2; x1=x_b; y1=y_b; stope=true; //проверка расположения второй вершины if (r1<=r3) { x2=x_a; y2=y_a; } else { x2=x_c; y2=y_c; } } //вычисление расстояние от центра круга до стороны треугольника B=x2-x1; A=y2-y1; C=(x1*A-y1*B); D=(A*x_m+B*y_m-C); //модуль в числителе формулы if (D<0) D=D*(-1); //формула рассчета расстояния от точки до прямой distance=(double)D/(pow(pow((double)A,2)+pow((double)B,2),0.1/0.2)); //вычитание из длины радиус круга distance=distance-r;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д