Estoy trabajando en un dial que gira alrededor de un círculo.
Este dial debería permitirle mover el mouse a cualquier parte del círculo para ajustar la posición del dial a un punto del círculo con el mismo ángulo que el clic. Por ejemplo, desde el dial de arriba si hace clic en el punto que se muestra en rosa debajo, movería el dial sobre ese punto pero en el círculo.
Sé cómo obtener la posición de un punto en un círculo dado un radio y un ángulo (en radianes). Esa es esta fórmula :
x = Cos(angle) * radius + CenterX;
y = Sin(angle) * radius + CenterY;
Sin embargo, estoy buscando hacer algo de lo contrario: tengo un punto de clic, que quiero convertir en un punto en un círculo (donde va la perilla de control). Estoy tratando de usar este punto (y un radio dado) para calcular el ángulo en radianes, de modo que pueda colocar la perilla de control en el círculo en el mismo ángulo.
¿Hay alguna fórmula útil que pueda usar para lograr esto?
atan
es la abreviatura de arctan
, y atan2
es solo una función que acepta argumentos individuales, y hace la división por usted.