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

21 Сен 2019 в 19:43
240 +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 Апр в 20:33
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 648 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир