Lấy vị trí của điểm trên chu vi hình tròn, cho một góc?


13

Tôi muốn biết làm thế nào để có được một điểm cụ thể trên chu vi của một vòng tròn, cho một góc. Đường kính của vòng tròn là 1, và điểm trung tâm của vòng tròn là { X: 0.5, Y: 0.5 }.

Câu trả lời:


23

Bạn có thể làm việc này bằng cách sử dụng lượng giác cơ bản. http://www.freehomeworkmathhelp.com/Trigonometry/Trigonometry_Int sinhtion / trigonometry.html

Tan(angle) = Opposite / Adjacent
Sin(angle) = Opposite / Hypotenuse
Cos(angle) = Adjacent / Hypotenuse

Tôi luôn nhớ những điều trên như

The Old Arab
Sat On His
Camel And Howled

Điều trên có nghĩa là nếu chúng ta có góc và một độ dài của một tam giác vuông góc, chúng ta có thể tính ra độ dài của các cạnh khác. May mắn thay, vấn đề của bạn có thể được coi là tính toán độ dài của các cạnh tam giác:

Hình tam giác hình tròn

Ở trên, r là cạnh huyền, x là liền kề và y ngược lại.

Vì vậy, đối với x:

Cos(a) = x / r
Cos(a) * r = x
x = Cos(a) * r

Và cho y:

Sin(a) = y / r
Sin(a) * r = y
y = Sin(a) * r

Đây là giả sử một vòng tròn tại (0, 0), vì vậy chúng tôi chỉ cần thêm vào trung tâm của vòng tròn.

radius = 1;
CenterX = 0.5;
CenterY = 0.5;

x = Cos(angle) * radius + CenterX;
Y = Sin(angle) * radius + CenterY;

Lưu ý: Các hàm C # Math sử dụng các góc theo radian, vì vậy nếu bạn có độ chuyển đổi chúng trước:

radians = degrees * Math.PI / 180

1
Hãy nhớ rằng góc nên được tính bằng radian.
bummzack

Phụ thuộc vào thư viện toán học, nhưng điểm tốt, XNA / .Net sử dụng radian.
George Duckett

Tại sao người Ả Rập cũ lại hú? Ở đây chúng ta không phải là tất cả những người nói tiếng Anh nên một quy tắc ghi nhớ khái niệm tốt hơn nhiều so với một câu ghi nhớ
FxIII

1
@FxIII: Đúng, nó không phải là bản ghi nhớ phổ biến nhất, tuy nhiên tôi luôn thấy nó dễ nhớ hơn SOHCAHTOA vì nó không bình thường.
George Duckett

Hoặc bạn chỉ có thể tìm kiếm nó, một khi bạn đã quen thuộc với khái niệm này, một hoặc hai lần một năm mà bạn cần nó.
Tết
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.