Tujuan Anda adalah untuk menentukan apakah titik 2D X yang diberikan terletak di dalam area segitiga dengan simpul A, B, C yang diberikan.
Tulis fungsi yang mengambil dalam koordinat titik uji X dan tiga simpul segitiga (jadi total koordinat 8) dan mengembalikan True jika titik terletak di dalam segitiga itu, dan Salah jika terletak di luar.
Jangan khawatir tentang tepi kasus. Jika titik terletak pada batas segitiga (tepi atau dhuwur) atau segitiga sebenarnya merupakan segmen garis, kode Anda dapat melakukan apa saja, termasuk menabrak. Juga jangan khawatir tentang stabilitas numerik atau presisi floating-point.
Kode Anda harus berupa fungsi bernama. Cuplikan kode tidak akan diterima.
Karakter yang paling sedikit menang.
Memasukkan:
Delapan bilangan real mewakili koordinat. Angka-angka akan berada dalam kisaran (-1,1)
.
Format input yang tepat fleksibel. Anda dapat, misalnya, mengambil dalam delapan angka, daftar delapan angka, daftar empat poin yang masing-masing diberikan oleh sebuah tuple, sebuah matriks 2 * 4, empat angka kompleks, dua daftar koordinat x dan koordinat y, dan seterusnya.
Masukan harus berupa angka-angka dalam wadah, tanpa data tambahan. Anda tidak dapat menggunakan input untuk melakukan preprocessing apa pun, Anda juga mungkin tidak memerlukan kendala pada input, seperti mengharuskan poin diberikan dalam koordinat naik y. Input Anda harus mengizinkan delapan koordinat (meskipun kode Anda dapat berperilaku sewenang-wenang dalam kasus tepi yang disebutkan sebelumnya).
Harap sebutkan format input Anda.
Keluaran:
Baik Boolean yang sesuai True
/ False
, nomor yang sesuai 1
/ 0
, atau analog dalam bahasa Anda.
Uji kasus
Input diberi daftar [X,A,B,C]
empat tupel, titik uji pertama, lalu tiga simpul segitiga. Saya telah mengelompokkan mereka ke dalam output yang seharusnya True
dan yang seharusnya False
.
True
contoh:
[(-0.31961, -0.12646), (0.38478, 0.37419), (-0.30613, -0.59754), (-0.85548, 0.6633)]
[(-0.87427, -0.00831), (0.78829, 0.60409), (-0.90904, -0.13856), (-0.80685, 0.48468)]
[(0.28997, -0.03668), (-0.28362, 0.42831), (0.39332, -0.07474), (-0.48694, -0.10497)]
[(-0.07783, 0.04415), (-0.34355, -0.07161), (0.59105, -0.93145), (0.29402, 0.90334)]
[(0.36107, 0.05389), (0.27103, 0.47754), (-0.00341, -0.79472), (0.82549, -0.29028)]
[(-0.01655, -0.20437), (-0.36194, -0.90281), (-0.26515, -0.4172), (0.36181, 0.51683)]
[(-0.12198, -0.45897), (-0.35128, -0.85405), (0.84566, 0.99364), (0.13767, 0.78618)]
[(-0.03847, -0.81531), (-0.18704, -0.33282), (-0.95717, -0.6337), (0.10976, -0.88374)]
[(0.07904, -0.06245), (0.95181, -0.84223), (-0.75583, -0.34406), (0.16785, 0.87519)]
[(-0.33485, 0.53875), (-0.25173, 0.51317), (-0.62441, -0.90698), (-0.47925, 0.74832)]
False
contoh:
[(-0.99103, 0.43842), (0.78128, -0.10985), (-0.84714, -0.20558), (-0.08925, -0.78608)]
[(0.15087, -0.56212), (-0.87374, -0.3787), (0.86403, 0.60374), (0.01392, 0.84362)]
[(0.1114, 0.66496), (-0.92633, 0.27408), (0.92439, 0.43692), (0.8298, -0.29647)]
[(0.87786, -0.8594), (-0.42283, -0.97999), (0.58659, -0.327), (-0.22656, 0.80896)]
[(0.43525, -0.8923), (0.86119, 0.78278), (-0.01348, 0.98093), (-0.56244, -0.75129)]
[(-0.73365, 0.28332), (0.63263, 0.17177), (-0.38398, -0.43497), (-0.31123, 0.73168)]
[(-0.57694, -0.87713), (-0.93622, 0.89397), (0.93117, 0.40775), (0.2323, -0.30718)]
[(0.91059, 0.75966), (0.60118, 0.73186), (0.32178, 0.88296), (-0.90087, -0.26367)]
[(0.3463, -0.89397), (0.99108, 0.13557), (0.50122, -0.8724), (0.43385, 0.00167)]
[(0.88121, 0.36469), (-0.29829, 0.21429), (0.31395, 0.2734), (0.43267, -0.78192)]