Dapatkan posisi titik pada keliling lingkaran, diberi sudut?

13

Saya ingin tahu cara mendapatkan titik tertentu pada keliling lingkaran, dengan sudut tertentu. Diameter lingkaran adalah 1, dan titik tengah lingkaran adalah { X: 0.5, Y: 0.5 }.

Mathias Lykkegaard Lorenzen
sumber

Jawaban:

23

Anda bisa mengatasinya menggunakan trigonometri dasar. http://www.freehomeworkmathhelp.com/Trigonometry/Trigonometry_Introduction/trigonometry.html

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

Saya selalu mengingat di atas sebagai

The Old Arab
Sat On His
Camel And Howled

Di atas berarti jika kita memiliki sudut dan satu panjang segitiga siku-siku kita dapat menghitung panjang sisi lainnya. Untungnya masalah Anda dapat dianggap sebagai menghitung panjang sisi segitiga:

Gambar Segitiga Lingkaran

Di atas, r adalah sisi miring, x adalah yang berdekatan dan y adalah sebaliknya.

Jadi untuk x:

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

Dan untuk kamu:

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

Ini mengasumsikan sebuah lingkaran di (0, 0), jadi kita tambahkan saja di tengah lingkaran itu.

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

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

Catatan: Fungsi C # Math menggunakan sudut dalam radian, jadi jika Anda memiliki derajat, konversikan dulu:

radians = degrees * Math.PI / 180
George Duckett
sumber
1
Perlu diingat bahwa sudut harus dalam radian.
bummzack
Tergantung pada perpustakaan matematika, tapi bagus, XNA / .Net menggunakan radian.
George Duckett
Mengapa orang Arab tua itu melolong? Di sini kita tidak semua penutur bahasa Inggris sehingga aturan memonik konseptual jauh lebih baik daripada kalimat mnemonik
FxIII
1
@FxIII: Benar, ini bukan memonik yang paling populer, namun saya selalu merasa mudah diingat daripada SOHCAHTOA karena itu tidak biasa.
George Duckett
Atau Anda bisa mencarinya, begitu Anda terbiasa dengan konsepnya, setahun sekali atau dua kali setahun Anda membutuhkannya.
Tetrad