Saya sedang mengerjakan dial yang berputar di sekitar lingkaran.
Dial ini harus memungkinkan Anda bergerak di mana saja dalam lingkaran untuk menyesuaikan posisi dial ke titik pada lingkaran dengan sudut yang sama dengan klik. Misalnya, dari tombol di atas jika Anda mengklik tempat yang ditunjukkan dengan warna merah muda di bawah, saya akan memindahkan tombol di atas titik itu tetapi pada lingkaran.
Saya tahu cara mendapatkan posisi titik pada lingkaran yang diberi jari-jari dan sudut (dalam radian). Itulah rumus ini :
x = Cos(angle) * radius + CenterX;
y = Sin(angle) * radius + CenterY;
Namun, saya ingin melakukan yang sebaliknya - Saya punya titik klik, yang ingin saya ubah menjadi titik pada lingkaran (tempat tombol kontrol berada). Saya mencoba menggunakan titik ini (dan radius yang diberikan) untuk mengetahui sudut dalam radian untuk itu, sehingga saya dapat menempatkan tombol kontrol pada lingkaran di sudut yang sama.
Apakah ada formula praktis yang bisa saya gunakan untuk mencapai ini?
atan
adalah kependekan dari arctan
, dan atan2
hanya fungsi yang menerima argumen individu, dan melakukan pembagian untuk Anda.