Công thức tiếp tuyến là thế này:
tan(angle) = opposite/adjacent
Tham khảo bản vẽ này:
Trường hợp a
là cạnh bên, o
là phía đối diện và theta
là góc. Tương tự, sin và cosine là sin (ang) = o / h và cos (ang) = a / h trong đó h
là cạnh dài: http://www.mathwords.com/s/sohcahtoa.htmlm
Trong khi đó atan
(viết tắt của tiếp tuyến vòng cung , còn được gọi là tiếp tuyến nghịch đảo ) là mặt trái của tan
, như vậy:
atan(opposite/adjacent) = angle
Do đó, nếu bạn biết các giá trị của cả hai mặt đối diện và liền kề (ví dụ: bằng cách trừ tọa độ của đối tượng khỏi tọa độ chuột), bạn có thể nhận được giá trị của góc atan
.
Tuy nhiên, trong phát triển trò chơi, có thể xảy ra khá thường xuyên rằng cạnh bên bằng 0 (ví dụ tọa độ x của vectơ là 0). Hãy nhớ rằng tan(angle) = opposite/adjacent
khả năng xảy ra lỗi chia nhỏ bằng 0 có thể xảy ra. Vì vậy, rất nhiều thư viện cung cấp một hàm được gọi atan2
, cho phép bạn chỉ định cả tham số x
và y
tham số, để tránh chia cho 0 cho bạn và đưa ra một góc trong góc phần tư bên phải.
(sơ đồ lịch sự của gareth, xin vui lòng bỏ phiếu cho câu trả lời của anh ấy quá)
Việc sử dụng lượng giác trong phát triển trò chơi là khá phổ biến, đặc biệt là với các vectơ, nhưng thông thường các thư viện ẩn công việc lượng giác cho bạn. Bạn có thể sử dụng sin / cos / tan cho nhiều tác vụ liên quan đến các thao tác hình học để tìm giá trị từ một hình tam giác. Tất cả những gì bạn cần là 3 giá trị (độ dài cạnh / giá trị góc) để tìm các giá trị khác của tam giác hình chữ nhật, vì vậy nó khá hữu ích.
Bạn thậm chí có thể sử dụng tính chất "đạp xe" của các hàm sin và cos cho các hành vi đặc biệt trong trò chơi, ví dụ: Tôi đã thấy cos / sin sử dụng rất nhiều để làm cho một vật thể quay xung quanh một vật khác.