ฟังก์ชัน 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);