Если неправильно выбрал раздел, перенесите, пожалуйста.
Последнее время дико туплю, чувствую, что в геометрии меня любой школьник уделает.
Есть четыре прямоугольника, которые нужно повернуть таким образом. Общий центр (чёрная точка) не меняется. Сами прямоугольники поворачиваю таким образом:
ctx.move_to(ZOOM * (r.x + (r.s_x / 2) * Math.cos(r.angle) - (r.s_y / 2) * Math.sin(r.angle)) - X_OFFSET,
ZOOM * (r.y + (r.s_y / 2) * Math.cos(r.angle) + (r.s_x / 2) * Math.sin(r.angle)) - Y_OFFSET);
ctx.line_to(ZOOM * (r.x - (r.s_x / 2) * Math.cos(r.angle) - (r.s_y / 2) * Math.sin(r.angle)) - X_OFFSET,
ZOOM * (r.y + (r.s_y / 2) * Math.cos(r.angle) - (r.s_x / 2) * Math.sin(r.angle)) - Y_OFFSET);
ctx.line_to(ZOOM * (r.x - (r.s_x / 2) * Math.cos(r.angle) + (r.s_y / 2) * Math.sin(r.angle)) - X_OFFSET,
ZOOM * (r.y - (r.s_y / 2) * Math.cos(r.angle) - (r.s_x / 2) * Math.sin(r.angle)) - Y_OFFSET);
ctx.line_to(ZOOM * (r.x + (r.s_x / 2) * Math.cos(r.angle) + (r.s_y / 2) * Math.sin(r.angle)) - X_OFFSET,
ZOOM * (r.y - (r.s_y / 2) * Math.cos(r.angle) + (r.s_x / 2) * Math.sin(r.angle)) - Y_OFFSET);
Я знаю координаты центров прямоугольников до поворота (белые точки относительно чёрной точки). А как вычислить координаты центров прямоугольников после поворота?