Ini adalah tantangan yang terinspirasi oleh Rotasi Chebyshev . Saya sarankan mencari jawaban di sana untuk mendapatkan inspirasi untuk tantangan ini.
Diberi titik di pesawat ada kotak unik (persegi panjang dengan sisi yang sama) yang berpusat pada titik asal dan memotong titik itu ( demo interaktif ):
Diberi titik p dan jarak d , kembalikan titik yang diperoleh dengan memindahkan jarak d dari p , berlawanan arah jarum jam (dan searah jarum jam untuk negatif d ), di sepanjang perimeter dari persegi yang berpusat pada titik asal yang memotong p . Jawaban Anda harus akurat hingga setidaknya 4 digit desimal.
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)
Kasus uji berikut berasal dari tantangan asli oleh Martin Ender, dan semuanya dengan 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)
