Вікіпедія говорить про полярні координати :
У математиці полярна система координат - це двовимірна система координат, в якій кожна точка на площині визначається відстанню від опорної точки та кутом від опорного напрямку.
Це здається ідеальним для опису шестикутної сітки. Візьмемо для прикладу наступну шестикутну сітку:
A B C
D E F G
H I J K L
M N O P
Q R S
Нашою опорною точкою буде центр шестикутника ('J'), а наш опорний кут буде до верхнього лівого кута шестикутника ('A'). Однак ми опишемо кут за кількістю кроків за годинниковою стрілкою навколо зовнішньої шестикутника з цієї точки, а не в кутах. Тож ми будемо називати це "Крок номер" замість кута.
Наприклад, "C" знаходиться на рівні (2, 2), оскільки він має радіус 2 (оскільки він розташований на два кільця від центру, "J") і крок 2 (2 кроки за годинниковою стрілкою вперед від "A" '). Аналогічно, "O" знаходиться в (1, 3), оскільки воно знаходиться одне кільце від центру, і три кроки за годинниковою стрілкою вперед від "E" (що знаходиться на опорному куті).
Для повноти "J" знаходиться на рівні (0, 0), оскільки для досягнення цього вам потрібно 0 кроків і 0 кроків за годинниковою стрілкою.
Тепер ви також можете описати шестикутник з декартовими координатами , але через зсув це трохи дивно. Так само, як і з нашими полярними координатами, ми поставимо центр на (0, 0). Кожен пробіл також займає координату, тому 'K' знаходиться у (2, 0), а не (1, 0). Це ставить «A» у (-2, 2), а «O» у (1, -1).
Змагання
Дані полярні шестикутні координати, виведіть ті ж координати в декартових координатах. Ви можете взяти ці координати, а відповідь вивести у будь-якому розумному форматі. Це означає, що ви можете змінити порядок входів, якщо вам це подобається. Це також означає, що ви можете виводити координати як (Y, X), але якщо це зробити, будь ласка, зазначте це у своїй відповіді, щоб уникнути плутанини.
Вам не доведеться обробляти негативні радіуси, але ви можете отримати негативні кути, або кути, які перевищують повний оберт навколо шестикутника. Наприклад, ви можете отримати (1, 10) або (1, -2) в якості введення. І те, і інше відповідатимуть "N" у нашому попередньому шестикутнику. Вам не потрібно обробляти нецілі числа для введення.
Зразок 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)