Задача на с++. Даны координаты вершин треугольника и координаты вершины точки в нём. Найти
расстояние от этой точки до самой близкой середины стороны треугольника.(Расстояние от точки до середины стороны треугольника должно быть наименьшем чем 2 других расстояния, но возможны варианты когда 3 или 2 расстояния равны)Ответы на вопрос
#include<iostream>
#include<cmath>
using namespace std;
int main() {
double x[3], y[3], midx[3], midy[3];
for(int jjj=0; jjj<3; jjj++) {
cout«"enter coordinates of vertex "«jjj+1«endl;
cin»x[jjj]»y[jjj];
if (jjj!=0) {
midx[jjj] = (x[jjj] + x[jjj-1]) / 2;
midy[jjj] = (y[jjj] + y[jjj-1]) / 2;
};
};
double xd, yd, min;
cout«"enter coordinates of dot "«endl;
cin»xd»yd;
for(int jjj=0; jjj<3; jjj++) {
double m = sqrt(pow(xd - x[jjj],2) + pow(yd - y[jjj],2));
min =(jjj==0)? m: min;
min =(min>m)? m: min;
};
cout«min;
}
Для решения этой задачи на C++, вы можете следовать следующим шагам:
- Вычислите середины всех трёх сторон треугольника.
- Найдите ближайшую из середин к заданной точке.
- Вычислите расстояние от этой ближайшей середины до заданной точки.
Для вычисления расстояния между двумя точками, можно использовать формулу расстояния между двумя точками в 2D пространстве: distance = sqrt((x2 - x1)^2 + (y2 - y1)^2).
Вот пример кода на C++:
cpp#include <iostream>
#include <cmath>
struct Point {
double x, y;
};
// Функция для вычисления расстояния между двумя точками
double distanceBetweenPoints(const Point& p1, const Point& p2) {
return sqrt(pow(p2.x - p1.x, 2) + pow(p2.y - p1.y, 2));
}
// Функция для вычисления середины отрезка между двумя точками
Point midPoint(const Point& p1, const Point& p2) {
return { (p1.x + p2.x) / 2, (p1.y + p2.y) / 2 };
}
// Функция для нахождения расстояния от точки до ближайшей середины стороны треугольника
double distanceToClosestMidpoint(const Point& p, const Point& A, const Point& B, const Point& C) {
// Вычисляем середины сторон треугольника
Point midAB = midPoint(A, B);
Point midBC = midPoint(B, C);
Point midCA = midPoint(C, A);
// Вычисляем расстояния от точки p до середин сторон треугольника
double distPtoAB = distanceBetweenPoints(p, midAB);
double distPtoBC = distanceBetweenPoints(p, midBC);
double distPtoCA = distanceBetweenPoints(p, midCA);
// Находим минимальное из расстояний
double minDistance = std::min({ distPtoAB, distPtoBC, distPtoCA });
return minDistance;
}
int main() {
Point A = { 0.0, 0.0 };
Point B = { 4.0, 0.0 };
Point C = { 2.0, 3.0 };
Point p = { 1.0, 2.0 };
double distance = distanceToClosestMidpoint(p, A, B, C);
std::cout << "Расстояние от точки до ближайшей середины стороны треугольника: " << distance << std::endl;
return 0;
}
Обратите внимание, что в данном примере используются структуры Point для представления точек. Вы можете заменить их на свой собственный способ представления точек, если требуется.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili
