Это вызов, вдохновленный вращением Чебышева . Я предлагаю посмотреть на ответы там, чтобы получить вдохновение для этого вызова.
Для данной точки на плоскости существует уникальный квадрат (прямоугольник с равными сторонами), который центрируется в начале координат и пересекает эту точку ( интерактивная демонстрация ):
Для заданной точки p и расстояния d верните точку, полученную путем перемещения расстояния d от p против часовой стрелки (и по часовой стрелке для отрицательного значения d ), по периметру квадрата с центром в начале координат, пересекающем p . Ваш ответ должен быть точным как минимум до 4 десятичных цифр.
Testcases:
(0, 0), 100 -> (0, 0)
(1, 1), 81.42 -> (-0.4200, 1.0000)
(42.234, 234.12), 2303.34 -> (-234.1200, 80.0940)
(-23, -39.234), -234.3 -> (39.2340, -21.8960)
Следующие тестовые примеры взяты из оригинальной задачи Мартина Эндера, и все они с d = 1 :
(0, 0) -> (0, 0)
(1, 0) -> (1, 1)
(1, 1) -> (0, 1)
(0, 1) -> (-1, 1)
(-1, 1) -> (-1, 0)
(-1, 0) -> (-1, -1)
(-1, -1) -> (0, -1)
(0, -1) -> (1, -1)
(1, -1) -> (1, 0)
(95, -12) -> (95, -11)
(127, 127) -> (126, 127)
(-2, 101) -> (-3, 101)
(-65, 65) -> (-65, 64)
(-127, 42) -> (-127, 41)
(-9, -9) -> (-8, -9)
(126, -127) -> (127, -127)
(105, -105) -> (105, -104)