Rumah > Artikel > pembangunan bahagian belakang > Bilakah Saya Harus Menggunakan atan() vs. atan2() dalam C ?
Perbezaan Antara atan dan atan2 dalam C
Dalam matematik, tangen bagi sudut α ditakrifkan sebagai nisbah sinusnya kepada kosinus:
tan(α) = sin(α) / cos(α)
Walau bagaimanapun, formula ini tidak dapat membezakan antara sudut dalam sukuan yang berbeza. Untuk menyelesaikan kekaburan ini, C menyediakan dua fungsi: atan dan atan2.
atan: Pengiraan Sudut Ambiguous
Fungsi atan() mengembalikan sudut antara -π/2 dan π/2, tanpa mengira sukuan dari mana nilai tangen asal diperoleh. Ini bermakna atan() hanya boleh mewakili sudut dengan tepat dalam sukuan pertama dan keempat (di mana tangennya positif).
atan2: Penentuan Sudut Tepat
Berbeza dengan atan (), fungsi atan2() mengambil dua hujah: y dan x. Ini mewakili komponen sinus dan kosinus bagi sudut, masing-masing. atan2() menggunakan nilai ini untuk mengira sudut, menyelesaikan keempat-empat kuadran dengan menambah π pada hasil atan() apabila kosinus negatif.
Perwakilan Vektor
Fungsi atan2(y, x) amat berguna untuk mewakili vektor. Argumen y dan x mewakili unjuran vektor dengan panjang v dan sudut α pada paksi-y dan x, masing-masing:
y = v * sin(α) x = v * cos(α)
Oleh itu, hubungan antara nilai ini ialah:
y/x = tan(α)
Kesimpulan
Fungsi atan() sesuai untuk situasi di mana hanya sudut dari sukuan pertama atau keempat yang relevan. Walau bagaimanapun, apabila penentuan sudut yang tepat adalah penting, fungsi atan2() harus diutamakan. Ia menyediakan julat penuh sudut dan boleh menyelesaikan sudut yang betul walaupun nilai input datang daripada kuadran yang berbeza.
Atas ialah kandungan terperinci Bilakah Saya Harus Menggunakan atan() vs. atan2() dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!