ฉันต้องการเปรียบเทียบมุมและรับทราบระยะห่างระหว่างพวกเขา สำหรับแอปพลิเคชันนี้ฉันทำงานเป็นองศา แต่ก็สามารถใช้ได้กับเรเดียนและบัณฑิต ปัญหาเกี่ยวกับมุมคือพวกมันขึ้นอยู่กับเลขคณิตจำเพาะเช่น 0-360 องศา
สมมติว่ามุมหนึ่งอยู่ที่ 15 องศาและมุมหนึ่งคือ 45 ความแตกต่างคือ 30 องศาและมุม 45 องศามากกว่า 15 องศา
แต่นี่จะหยุดลงเมื่อคุณพูด 345 องศาและ 30 องศา แม้ว่าจะเปรียบเทียบอย่างเหมาะสม แต่ความแตกต่างระหว่างพวกเขาคือ 315 องศาแทนที่จะเป็น 45 องศาที่ถูกต้อง
ฉันจะแก้ปัญหานี้ได้อย่างไร ฉันสามารถเขียนรหัสอัลกอริทึม:
if(angle1 > angle2) delta_theta = 360 - angle2 - angle1;
else delta_theta = angle2 - angle1;
แต่ฉันต้องการทางออกที่หลีกเลี่ยงการเปรียบเทียบ / สาขาและอาศัยเลขคณิตทั้งหมด