Wikipedia mówi o współrzędnych biegunowych :
W matematyce biegunowy układ współrzędnych jest dwuwymiarowym układem współrzędnych, w którym każdy punkt na płaszczyźnie jest określony przez odległość od punktu odniesienia i kąt od kierunku odniesienia.
Wydaje się to idealne do opisu siatek heksagonalnych. Weźmy na przykład następującą siatkę sześciokątną:
A B C
D E F G
H I J K L
M N O P
Q R S
Naszym punktem odniesienia będzie środek sześciokąta („J”), a naszym kątem odniesienia będzie lewy górny róg sześciokąta („A”). Opiszemy jednak kąt w kategoriach liczby kroków zgodnie z ruchem wskazówek zegara wokół zewnętrznej strony sześciokąta od tego punktu, a nie w kątach. Nazywamy to „numerem kroku” zamiast kąta.
Na przykład „C” ma wartość (2, 2), ponieważ ma promień 2 (ponieważ jest dwa pierścienie od środka, „J”) i liczbę kroków 2 (2 kroki zgodnie z ruchem wskazówek zegara od „A” ”). Podobnie „O” znajduje się w (1, 3), ponieważ jest o jeden pierścień od środka i trzy kroki zgodnie z ruchem wskazówek zegara do przodu od „E” (który jest pod kątem odniesienia).
Dla kompletności, „J” ma wartość (0, 0), ponieważ do osiągnięcia tego potrzeba 0 kroków i 0 kroków zgodnie z ruchem wskazówek zegara.
Teraz możesz również opisać sześciokąt z współrzędnymi kartezjańskimi , ale z powodu przesunięcia jest to trochę dziwne. Podobnie jak w przypadku naszych współrzędnych biegunowych, ustawimy środek na (0, 0). Każda przestrzeń zajmuje również współrzędną, więc „K” ma wartość (2, 0), a nie (1, 0). Ustawiłoby to „A” na (-2, 2), a „O” na (1, -1).
Wyzwanie
Biorąc pod uwagę biegunowe współrzędne sześciokątne, wyślij te same współrzędne we współrzędnych kartezjańskich. Możesz wziąć te współrzędne i otrzymać odpowiedź w dowolnym rozsądnym formacie. Oznacza to, że możesz odwrócić kolejność wejść, jeśli chcesz. Oznacza to również, że możesz wyprowadzać współrzędne jako (Y, X), ale jeśli tak, proszę wspomnij o tym w swojej odpowiedzi, aby uniknąć zamieszania.
Nie musisz obsługiwać promieni ujemnych, ale możesz uzyskać kąty ujemne lub kąty, które przekraczają pełny obrót wokół sześciokąta. Na przykład możesz otrzymać (1, 10) lub (1, -2) jako dane wejściowe. Oba odpowiadałyby „N” w naszym poprzednim sześciokącie. Zdajesz nie muszą obsługiwać nie-całkowitymi dla wejścia.
Próbka IO
#Polar #Cartesian
(0, 0) (0, 0)
(1, 2) (2, 0)
(6, 0) (-6, 6)
(2, -3) (-3, -1)
(4, 23), (-5, 3)
(5, -3), (-8, 2)
(10, 50), (-20, 0)
(6, 10), (10, 2)
(8, 28), (0, -8)
(8, -20), (0, -8)