Найти размеры сторон наклоненного прямоугольника

Я знаю две точки: левый верхний (x1, y1) и правый нижний (x2, y2) угол прямоугольника, также знаю угол наклона прямоугольника в градусах (также знаю точку pivot/origin наклона). Каким образом найти длину сторон? Мне нужны конкретные формулы для рассчета ширины и высоты.

Подозреваю что тут что-то очень простое, но что-то никак не соображу.


Ответы (2 шт):

Автор решения: MBo

введите сюда описание изображения

Пусть неизвестные ширина и высота прямоугольника w и h

Из картинки можно увидеть, что разница левой и правой координат H.x и F.x, в ваших обозначениях, вероятно, x2-x1 = dx

dx = h * s + w * c

где c = Cos(Fi), s = Sin(Fi)

А разница по ординате

dy = h * c - w * s

Если домножить первое уравнение на s, а второе на с, и сложить, то получим выражение для h

А если домножить первое уравнение на с, а второе на s, и вычесть, то получим выражение для w

Есть тонкости со знаками и тем, что считать шириной и высотой, но для Fi<Pi/2 всё просто.

→ Ссылка
Автор решения: eri

Преобразованием координат можно получиь сразу длинну и ширину.

Сначала сдвинем систему координат в точку 1. Получается 2 точки:

(0,0) и (x0,y0)=(х2-х1, у2-у1)

Потом повернем оси на угол a=-pivot, так как одна точка в (0,0) стоит, а стороны легли на оси - противоположная точка какраз ширина и высота прямоугольника

w = x0*cos(a)-y0*sin(a)
h = x0*sin(a)+y0*cos(a)
→ Ссылка