Wikipedia mengatakan tentang Koordinat Polar :
Dalam matematika, sistem koordinat kutub adalah sistem koordinat dua dimensi di mana setiap titik pada bidang ditentukan oleh jarak dari titik referensi dan sudut dari arah referensi.
Ini tampaknya sempurna untuk menggambarkan kisi heksagonal. Ambil kisi heksagonal berikut sebagai contoh:
A B C
D E F G
H I J K L
M N O P
Q R S
Titik referensi kami akan menjadi pusat segi enam ('J'), dan sudut referensi kami akan ke sudut kiri atas segi enam ('A'). Namun, kami akan menjelaskan sudut dalam hal jumlah langkah searah jarum jam di sekitar luar segi enam dari titik ini, bukan dalam sudut. Jadi kita akan menyebutnya "Nomor langkah" bukan sudut.
Misalnya, 'C' berada di (2, 2) karena ia memiliki jari-jari 2 (karena itu adalah dua cincin dari pusat, 'J'), dan nomor langkah 2 (2 langkah searah jarum jam maju dari 'A '). Demikian pula, 'O' berada di (1, 3), karena itu adalah satu cincin dari pusat, dan tiga langkah searah jarum jam maju dari 'E' (yang ada di sudut referensi).
Untuk kelengkapan, 'J' berada di (0, 0), karena Anda perlu 0 langkah keluar dan 0 langkah searah jarum jam untuk mencapainya.
Sekarang, Anda juga dapat menggambarkan heksagonal dengan Koordinat Cartesian , tetapi karena offset ini agak aneh. Sama seperti dengan koordinat kutub kami, kami akan menempatkan pusat di (0, 0). Setiap ruang membutuhkan koordinat juga, jadi 'K' berada di (2, 0), bukan (1, 0). Ini akan menempatkan 'A' di (-2, 2), dan 'O' di (1, -1).
Tantangan
Dengan koordinat heksagonal polar, hasilkan koordinat yang sama dalam koordinat Cartesius. Anda dapat mengambil coords ini, dan menghasilkan jawabannya dalam format yang masuk akal. Ini berarti Anda dapat membalik urutan input jika Anda mau. Ini juga berarti Anda dapat menampilkan coords sebagai (Y, X), tetapi jika Anda melakukannya, sebutkan ini dalam jawaban Anda untuk menghindari kebingungan.
Anda tidak harus menangani jari-jari negatif, tetapi Anda mungkin mendapatkan sudut negatif, atau sudut yang lebih dari revolusi penuh di sekitar segi enam. Misalnya, Anda dapat menerima (1, 10), atau (1, -2) sebagai masukan. Keduanya akan sama dengan 'N' di segi enam sebelumnya. Anda tidak harus menangani non-integer untuk input.
Contoh 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)