MySQL การใช้งานฟังก์ชัน ATAN2()

ฟังก์ชัน ATAN2() (Arc Tangent 2) เป็นฟังก์ชันตรีโกณมิติที่ใช้คำนวณมุม (หน่วยเรเดียน) ของเวกเตอร์ที่ลากจากจุด (0,0) ไปยังจุด (x,y) โดยคำนึงถึงตำแหน่งของทั้ง x และ y เพื่อระบุมุมใน ทุกควอแดรนท์ (quadrant) อย่างถูกต้อง

  • เป็นฟังก์ชันขั้นสูงของ ATAN() ที่รับพารามิเตอร์ 2 ค่า คือ y และ x
  • ผลลัพธ์จะอยู่ในช่วง −π ถึง π (ประมาณ −3.1416 ถึง 3.1416 เรเดียน)

ประโยชน์ของฟังก์ชัน ATAN2()

  • ใช้คำนวณทิศทางหรือมุมของเวกเตอร์ จากตำแหน่ง (x, y)
  • เหมาะสำหรับระบบที่ต้องการระบุมุม 360 องศาได้ถูกต้อง เช่น
    • ระบบ GPS
    • ระบบเรดาร์
    • เกมและกราฟิก (ทิศทางการหมุน)
  • ช่วยหลีกเลี่ยงข้อผิดพลาดจากการใช้ ATAN(y/x) ที่ไม่สามารถแยกควอแดรนท์ได้

รูปแบบการใช้งาน

ATAN2(y, x)
  • y คือพิกัดแนวตั้ง (แกน Y)
  • x คือพิกัดแนวนอน (แกน X)
  • ถ้า x = 0 จะพิจารณาค่า y เพื่อกำหนดมุม
  • ถ้า x = 0 และ y = 0 ผลลัพธ์จะเป็น NULL

ช่วงค่าผลลัพธ์

รูปแบบผลลัพธ์ ช่วงค่าที่ได้จาก ATAN2(y, x)
เรเดียน (Radians) -π ถึง π
(ประมาณ -3.1416 ถึง 3.1416)

ตัวอย่างการใช้งาน

คำนวณมุมจากจุด (x=1, y=1)

SQL
SELECT ATAN2(1, 1);            -- ผลลัพธ์: 0.78539816339745 (π/4)
SELECT DEGREES(ATAN2(1, 1));   -- ผลลัพธ์: 45 องศา

จุดในควอแดรนท์ต่าง ๆ

SQL
SELECT DEGREES(ATAN2(1, -1));  -- 135 องศา
SELECT DEGREES(ATAN2(-1, -1)); -- -135 องศา
SELECT DEGREES(ATAN2(-1, 1));  -- -45 องศา

ตัวอย่างการประยุกต์ใช้ (ระบบพิกัด/การเคลื่อนที่)

SQL
-- คำนวณมุมทิศทางจากจุดศูนย์กลาง (0,0) ไปยังตำแหน่ง (x=5, y=10)
SELECT DEGREES(ATAN2(10, 5)) AS angle_to_target;

หมายเหตุ

  • ถ้า x = 0 และ y = 0 ผลลัพธ์จะเป็น NULL เพราะไม่สามารถระบุมุมจากจุดเดียวกันได้
  • ผลลัพธ์จะเป็นหน่วยเรเดียน ถ้าต้องการองศา ต้องใช้ฟังก์ชัน DEGREES()
  • ค่ามุมที่ได้อาจติดลบ ต้องแปลงถ้าต้องการค่าระหว่าง 0–360 องศา
SQL
SELECT MOD(DEGREES(ATAN2(y, x)) + 360, 360);
แชร์เรื่องนี้