Kelebihan bola berbentuk segitiga
Seperti yang kita semua tahu, jumlah sudut dari setiap segitiga planar sama dengan 180 derajat.
Namun, untuk segitiga berbentuk bola, jumlah sudut selalu lebih besar dari 180 derajat. Perbedaan antara jumlah sudut segitiga bola dan 180 derajat disebut kelebihan bola . Tugasnya adalah untuk menghitung kelebihan bola dari segitiga dengan koordinat titik yang diberikan.
Beberapa latar belakang
Segitiga bola adalah bagian dari bola yang didefinisikan oleh tiga lingkaran besar bola.
Kedua sisi dan sudut segitiga bola diukur dalam istilah ukuran sudut, karena setiap sisi dapat dianggap sebagai persimpangan bola dan beberapa sudut planar dengan simpul di tengah bola:
Masing-masing tiga lingkaran besar yang berbeda menentukan 8 segitiga, tetapi kami hanya mempertimbangkan segitiga yang tepat , yaitu. segitiga yang ukuran sudut dan sampingnya memuaskan
Lebih mudah untuk mendefinisikan simpul segitiga dalam hal sistem koordinat geografis. Untuk menghitung panjang busur bola diberikan garis bujur λ dan garis lintang Φ dari ujungnya kita dapat menggunakan rumus:
dimana
atau lebih tepatnya:
(sumber: https://en.wikipedia.org/wiki/Haversine_formula )
Dua formula dasar yang dapat digunakan untuk memecahkan segitiga bola adalah:
- hukum cosinus:
- hukum sinus:
(sumber: https://en.wikipedia.org/wiki/Spherical_trigonometry#Cosine_rules_and_sine_rules )
Diberikan tiga sisi, mudah untuk menghitung sudut menggunakan aturan cosinus:
Akhirnya, kelebihan bola dari segitiga didefinisikan:
Apa yang menarik tentang hubungan antara kelebihan bola segitiga dan luasnya:
Jadi pada unit sphere, kelebihan sebuah segitiga sama dengan luas segitiga itu!
Tugas
Tulis fungsi atau program yang akan menghitung kelebihan bola dari segitiga dalam derajat yang diberikan koordinat segitiga simpul. Koordinat titik disediakan dalam hal sistem koordinat geografis.
Setiap titik harus dilewatkan dalam bentuk [latitude in degrees][N|S][longitude in degrees][E|W]
. Bujur dan E
atau W
dapat dilewati ketika lintang adalah 90 yaitu. 90N
, 90S
, 10N100E
, 30S20W
Adalah deskripsi vertex yang tepat, sementara 80N
atau 55S
tidak.
Garis lintang dan bujur selalu bilangan bulat dalam kasus uji.
Jawaban dengan kesalahan kurang dari satu derajat akan diterima (seperti dalam contoh di bawah). Hasilnya dapat ditampilkan sebagai nyata atau bilangan bulat, hingga kenyamanan Anda.
Contohnya
Memasukkan
90N0E
0N0E
0N90E
Keluaran
89.999989
Memasukkan
90N
0N0E
0N90E
Keluaran
89.999989
Memasukkan
0N0E
0N179E
90N0E
Keluaran
178.998863
Memasukkan
10N10E
70N20W
70N40E
Keluaran
11.969793
Dalam semua kasus uji, bujur dan lintang adalah bilangan bulat. Parsing koordinat titik adalah bagian dari tugas, sehingga simpul harus dilalui sebagai satu string / literal, itu tidak diperbolehkan untuk melewati 80N20E
empat parameter / string: 80
, N
, 20
, E
.
Ini dijamin bahwa semua simpul berbeda dan tak satu pun dari tiga simpul membuat pasangan antipodal.
Mencetak gol
Ini kode-golf , jadi kode terpendek menang.