Известны координаты противоположных углов прямоугольника и (условно) наклон его стороны... найти координаты других углов
У нас есть прямоугольник, который описан двумя точками (Х и Y) и известно, что он может находиться под углом N.. найти координаты других точек. Подскажите, пожалуйста формулу...

cтоит отметить, что изменяя угол стороны (но НЕ изменяя координаты известных углов), остальные углы будут меняться... то есть длинны сторон нам неизвестны
Ответы (2 шт):
Пусть указанный угол fi, тогда единичный вектор одной стороны будет
dx = cos(fi)
dy = sin(fi)
а второй, перпендикулярной стороны
px = -dy
py = dx
Теперь составим два уравнения
x1 + a*dx + b*px = x2
y1 + a*dy + b*py = y2
или
a*dx - b*dy = x2-x1
a*dy + b*dx = y2-y1
и решим данную систему относительно неизвестных длин сторон a и b
Затем получим неизвестные координаты как
x3 = x1 + b*px
y3 = y1 + b*py
x4 = x1 + a*dx
y4 = y1 + a*dy
Обозначим u = (cos n, sin n) – вектор в направлении n. Координаты верхней неизвестной точки обозначим (x, y). Прямая ((x, y), (x2, y2)) перпендикулярна u. То есть,
((x, y) - (x2, y2))·u = 0.
Обозначим v = (-sin n, cos n) – вектор перпендикулярный u. Ему перпендикулярна прямая ((x, y), (x1, y1)), а значит:
((x, y) - (x1, y1))·v = 0.
u и v ортогональные, единичной длины. Тогда
(x, y) = ((x2, y2)·u)u + ((x1, y1)·v)v.
Для проверки подставьте этот вектор в оба условия. Он обращает их в верные равенства.
Перепишем в координатах:
x = (x2 cos n + y2 sin n)cos n - (-x1 sin n + y1 cos n)sin n
y = (x2 cos n + y2 sin n)sin n + (-x1 sin n + y1 cos n)cos n
Координаты второй точки вы получите поменяв индексы в формулах: 1 ⇔ 2.