Je travaille sur un cadran qui tourne autour d'un cercle.
Ce cadran devrait vous permettre de vous déplacer n'importe où dans un cercle pour ajuster la position du cadran à un point du cercle avec le même angle que le clic. Par exemple, à partir du cadran ci-dessus, si vous avez cliqué sur le point indiqué en rose ci-dessous, je déplacerais le cadran au-dessus de ce point mais sur le cercle.
Je sais comment obtenir la position d'un point sur un cercle étant donné un rayon et un angle (en radians). Voilà cette formule :
x = Cos(angle) * radius + CenterX;
y = Sin(angle) * radius + CenterY;
Cependant, je cherche à faire un peu l'inverse - j'ai un point de clic, que je veux transformer en un point sur un cercle (où va le bouton de commande). J'essaie d'utiliser ce point (et un rayon donné) pour déterminer l'angle en radians pour cela, afin de pouvoir placer le bouton de commande sur le cercle au même angle.
Existe-t-il une formule pratique que je peux utiliser pour y parvenir?
atan
est l'abréviation de arctan
, et atan2
est juste une fonction qui accepte des arguments individuels et fait la division pour vous.