Найти размеры сторон наклоненного прямоугольника
Я знаю две точки: левый верхний (x1, y1) и правый нижний (x2, y2) угол прямоугольника, также знаю угол наклона прямоугольника в градусах (также знаю точку pivot/origin наклона). Каким образом найти длину сторон? Мне нужны конкретные формулы для рассчета ширины и высоты.
Подозреваю что тут что-то очень простое, но что-то никак не соображу.
Ответы (2 шт):
Пусть неизвестные ширина и высота прямоугольника 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 всё просто.
Преобразованием координат можно получиь сразу длинну и ширину.
Сначала сдвинем систему координат в точку 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)
