
Нужно преобразовать deterministic samples из [0, 1] x [0, 1] в точки внутри повернутого прямоугольника.
Прямоугольник задан центром, шириной, высотой и углом поворота в радианах. Каждый sample (u, v) сначала переводится в локальные координаты прямоугольника, затем поворачивается и сдвигается в центр.
В реальном собеседовании samples генерировались через NumPy RNG. В тренажере они передаются явно, чтобы автотесты были детерминированными.
def rotated_rectangle_points(
center: list[float],
width: float,
height: float,
angle_rad: float,
samples: list[list[float]],
) -> list[list[float]]:
Верните координаты, округленные до 6 знаков после запятой.
center = [0,0]width = 2height = 2angle_rad = 0samples = [[0,0],[0.5,0.5],[1,1]][[-1,-1],[0,0],[1,1]]Без поворота это обычный axis-aligned rectangle
center = [1,2]width = 2height = 4angle_rad = 1.5707963267948966samples = [[0.5,0.5],[1,0.5],[0.5,1]][[1,2],[1,3],[-1,2]]Поворот на 90 градусов вокруг центра
center = [1,-1]width = 4height = 2angle_rad = 0.7853981633974483samples = [[0.5,0.5],[1,0.5],[0.5,1]][[1,-1],[2.414214,0.414214],[0.292893,-0.292893]]Поворот на 45 градусов