Tôi muốn so sánh các góc và có được một ý tưởng về khoảng cách giữa chúng. Đối với ứng dụng này, tôi đang làm việc theo độ, nhưng nó cũng sẽ hoạt động cho radian và grads. Vấn đề với các góc là chúng phụ thuộc vào số học mô-đun, tức là 0-360 độ.
Nói một góc là 15 độ và một góc là 45. Chênh lệch là 30 độ, và góc 45 độ lớn hơn góc 15 độ.
Nhưng, điều này bị phá vỡ khi bạn có, nói, 345 độ và 30 độ. Mặc dù họ so sánh đúng, sự khác biệt giữa chúng là 315 độ thay vì 45 độ chính xác.
Làm sao tôi có thể giải quyết việc này? Tôi có thể viết mã thuật toán:
if(angle1 > angle2) delta_theta = 360 - angle2 - angle1;
else delta_theta = angle2 - angle1;
Nhưng tôi thích một giải pháp tránh so sánh / các nhánh và hoàn toàn dựa vào số học.