Заданы координаты точки A (xa, ya) и точки B (xb, yb). Найдите еще две точки C и D, такие что ACBD – квадрат, причем AB – его диагональ. Исходные данные: с клавиатуры вводятся xa, ya, xb и yb, гарантируется, что точки A и B не совпадают. Исходные данные являются целыми числами, по модулю не превышающими 1000.

29 Ноя 2019 в 19:44
223 +1
0
Ответы
1

Для нахождения точек C и D, которые образуют квадрат ACBD, можно воспользоваться следующими шагами:

Найдем середину отрезка AB, это будет точка M с координатами:
xm = (xa + xb) / 2
ym = (ya + yb) / 2

Вектор AB представляется как:
AB = (xb - xa, yb - ya)

Найдем координаты вектора, перпендикулярного AB, это будет вектор AC:
AC = (- (yb - ya), xb - xa)

Точка C будет находится на расстоянии d = |AB| / sqrt(2) от точки M вдоль вектора AC:
xc = xm + d (- (yb - ya) / sqrt((xb - xa)^2 + (yb - ya)^2))
yc = ym + d (xb - xa) / sqrt((xb - xa)^2 + (yb - ya)^2)

Точка D будет симметричной точке C относительно прямой AB:
xd = 2 xa - xc
yd = 2 ya - yc

Теперь мы можем найти координаты точек C и D.

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