Este é um desafio inspirado pela rotação de Chebyshev . Sugiro que procure respostas para obter inspiração para esse desafio.
Dado um ponto no plano, há um quadrado único (um retângulo com lados iguais) centralizado na origem e cruzando esse ponto ( demonstração interativa ):
Dado um ponto p e uma distância d , retorne o ponto obtido movendo a distância d de p , no sentido anti-horário (e no sentido horário para d negativo ), ao longo do perímetro do quadrado centrado na origem que cruza p . Sua resposta deve ter precisão de pelo menos 4 dígitos decimais.
Casos de teste:
(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)
Os seguintes casos de teste são do desafio original de Martin Ender e todos estão com 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)