Я так понимаю, что морщина в вашей проблеме в том, что ограничивающую рамку можно вращать?Если это так, то мне кажется, что проще всего сделать все вычисления в повернутой координатной плоскости, центрированной по центру ограничительной рамки.
Чтобы вычислить координаты точки относительно этих осей:
newy = sin(angle) * (oldy - centery) + cos(angle) * (oldx - centerx);
newx = cos(angle) * (oldx - centerx) - sin(angle) * (oldy - centery);
(вам может потребоваться настроить это в зависимости от того, как угол должен быть измерен, я оставлю это вам, поскольку вы не указали)
Затем нажмите тест, нормальный способ:
return (newy > centery - height / 2) && (newy < centery + height / 2)
&& (newx > centerx - width / 2) && (newx < centerx + width / 2);