Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengira Sudut Antara Garis dan Paksi Mendatar?

Bagaimanakah Saya Boleh Mengira Sudut Antara Garis dan Paksi Mendatar?

DDD
Lepaskan: 2025-01-14 17:42:44
asal
472 orang telah melayarinya

How Can I Calculate the Angle Between a Line and the Horizontal Axis?

Kira sudut antara garis lurus dan paksi mengufuk

Dalam pengaturcaraan, selalunya perlu untuk menentukan sudut antara garis lurus dan paksi mendatar. Pertimbangkan rajah berikut, di mana (P1x,P1y) dan (P2x,P2y) mentakrifkan dalam kuadran positif Segmen baris terarah. Matlamat kami adalah untuk mencari sudut θ antara garis ini dan paksi mendatar.

Langkah untuk mengira sudut yang disertakan:

1. Kira komponen vektor: Cari perbezaan antara titik akhir:

  • deltaY = P2y - P1y
  • deltaX = P2x - P1x

2. Gunakan arctan2 untuk mengira sudut (disyorkan):

  • angleInDegrees = atan2(deltaY, deltaX) * 180 / PI

Kaedah ini menggunakan fungsi atan2, yang menganggap deltaY dan deltaX untuk menentukan sudut yang betul dalam semua kuadran.

3. Kaedah alternatif:

  • Anggap vektor (deltaX, deltaY) sebagai vektor unit dengan membahagikannya dengan panjangnya.
  • deltaX menjadi kosinus sudut, dan deltaY menjadi sinus sudut.
  • Jika panjang vektor ialah 0, tiada sudut, jadi sinus dan kosinus tidak ditentukan.

Nota lain:

  • Tanda deltaX dan deltaY menentukan kuadran sudut.
  • atan2(deltaY, deltaX) mengembalikan sudut dalam radian. Darab dengan 180 / PI untuk menukarnya kepada darjah.

Perlaksanaan contoh Python:

<code class="language-python">from math import atan2, pi

def get_angle_between_points(x1, y1, x2, y2):
    deltaY = y2 - y1
    deltaX = x2 - x1
    angle_in_radians = atan2(deltaY, deltaX)
    angle_in_degrees = angle_in_radians * 180 / pi
    return angle_in_degrees</code>
Salin selepas log masuk

Fungsi ini menerima empat koordinat dan mengembalikan sudut dalam darjah.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Sudut Antara Garis dan Paksi Mendatar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan