Este es un desafío inspirado en la rotación de Chebyshev . Sugiero buscar respuestas allí para inspirarse en este desafío.
Dado un punto en el plano, hay un cuadrado único (un rectángulo con lados iguales) que se centra en el origen e intersecta ese punto ( demostración interactiva ):
Dado un punto p y una distancia d , devuelve el punto obtenido moviendo la distancia d desde p , en sentido antihorario (y en sentido horario para d negativo ), a lo largo del perímetro del cuadrado centrado en el origen que interseca p . Su respuesta debe tener una precisión de al menos 4 dígitos decimales.
Casos de prueba:
(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)
Los siguientes casos de prueba son del desafío original de Martin Ender, y todos son con 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)