Hãy để tôi thử cung cấp cho bạn một cái gì đó ở đâu đó giữa câu trả lời của The Light Spark và câu trả lời của Elliot, bởi vì từ những gì tôi đọc được, bạn thực sự đang tìm kiếm một thuật toán để theo dõi chứ không chỉ là toán học ném vào bạn.
Báo cáo sự cố: Cho rằng bạn có một vị trí A (50, 50)và một tiêu đề (vì bạn không cung cấp một vị trí, tôi sẽ khẳng định nó là y = 2 * x + 25), tìm vị trí B (80, 90)có liên quan đến Avà tiêu đề.
Những gì bạn muốn làm là thực sự khá đơn giản. 1) Di chuyển Ađến nguồn gốc của hệ thống của bạn. Điều này chỉ đơn giản có nghĩa là các Agiá trị cục bộ sẽ là giá trị vị trí toàn cầu trừ đi các giá trị vị trí toàn cầu A. Atrở thành (0, 0)và Btrở thành (30, 40).
1.1) Tiêu đề cũng cần phải được di chuyển. Đây thực sự là một việc rất dễ thực hiện, bởi vì phần chặn y Atheo thuật ngữ địa phương luôn là 0 và độ dốc sẽ không thay đổi, vì vậy chúng tôi có y = 2 * xtiêu đề.
2) Bây giờ chúng ta cần căn chỉnh tiêu đề trước với trục X. Vì vậy, làm thế nào để chúng tôi làm điều này? Cách dễ nhất, về mặt khái niệm để làm điều này là chuyển đổi từ tọa độ x, y sang hệ tọa độ cực. Hệ thống tọa độ cực bao gồm R, khoảng cách đến một vị trí và phigóc quay từ trục x. Rđược định nghĩa là sqrt(x^2 + y^2)và phiđược định nghĩa là atan(y / x). Hầu hết các ngôn ngữ máy tính ngày nay đều đi trước và xác định một atan2(y, x)chức năng thực hiện chính xác điều tương tự atan(y/x)nhưng thực hiện theo cách mà đầu ra có xu hướng từ -180 độ đến 180 độ thay vì 0 độ đến 360 độ, nhưng đều hoạt động.
Bdo đó trở thành R = sqrt(30^2 + 40^2) = sqrt(2500) = 50, và phi = atan2(40, 30) = 53.13theo độ.
Tương tự, tiêu đề bây giờ thay đổi. Điều này hơi khó để giải thích, nhưng bởi vì tiêu đề, theo định nghĩa, luôn đi qua nguồn gốc của chúng tôi A, chúng tôi không cần phải lo lắng về Rthành phần này. Tiêu đề luôn sẽ theo hình thức phi = Cnơi Clà một hằng số. Trong trường hợp này, phi = atan(2 * x / x) = atan(2) = 63.435độ.
Bây giờ, chúng ta có thể xoay hệ thống để di chuyển tiêu đề sang trục X của Ahệ thống cục bộ . Giống như khi chúng ta chuyển Ađến nguồn gốc của hệ thống, tất cả những gì chúng ta phải làm là trừ đi phitiêu đề khỏi tất cả các phigiá trị trong hệ thống. Vì vậy, phicác Bthành 53.13 - 63.435 = -10.305độ.
Cuối cùng, chúng ta phải chuyển đổi ngược ra khỏi tọa độ cực thành tọa độ x, y. Công thức để thực hiện chuyển đổi đó là X = R * cos(phi)và Y = R * sin(phi). Đối Bdo đó, chúng tôi nhận X = 50 * cos(-10.305) = 49.2và Y = 50 * sin(-10.305) = 8.9, vì vậy Btrong địa phương-to- Atọa độ gần (49,9).
Hy vọng rằng điều đó sẽ giúp, và đủ nhẹ về toán học để bạn theo dõi.