Задача на с++. Даны координаты вершин треугольника и координаты вершины точки в нём. Найти расстояние от этой точки до самой близкой середины стороны треугольника.(Расстояние от точки до середины стороны треугольника должно быть наименьшем чем 2 других расстояния, но возможны варианты когда 3 или 2 расстояния равны)

21 Сен 2019 в 19:43
267 +1
0
Ответы
1

Для решения этой задачи можно воспользоваться следующим алгоритмом:

Находим середины сторон треугольника.Для каждой середины стороны находим расстояние до данной точки.Выбираем самое минимальное из найденных расстояний.

Пример кода на C++:

#include <iostream>
#include <cmath>
struct Point {
double x, y;
};
double distance(Point p1, Point p2) {
return sqrt(pow(p1.x - p2.x, 2) + pow(p1.y - p2.y, 2));
}
Point midpoint(Point p1, Point p2) {
Point mid;
mid.x = (p1.x + p2.x) / 2;
mid.y = (p1.y + p2.y) / 2;
return mid;
}
int main() {
Point A = {0.0, 0.0};
Point B = {3.0, 0.0};
Point C = {1.5, 2.0};
Point P = {2.0, 1.0};
Point midAB = midpoint(A, B);
Point midBC = midpoint(B, C);
Point midCA = midpoint(C, A);
double distAB = distance(P, midAB);
double distBC = distance(P, midBC);
double distCA = distance(P, midCA);
double minDistance = std::min(std::min(distAB, distBC), distCA);
std::cout << "Минимальное расстояние до середины стороны треугольника: " << minDistance << std::endl;
return 0;
}

Пример вывода:

Минимальное расстояние до середины стороны треугольника: 1.0
19 Апр 2024 в 20:33
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир