Paso 2: Un poco de teoría.
En lugar de ver un reloj como un conjunto de movimiento de las manos, tenemos que imaginarlo como un conjunto de círculos concéntricos. Una mano es una línea trazada entre el centro y un punto de uno de estos círculos.
Una mano estará siempre a un cierto ángulo a es punto de partida (reloj de 12 o).
Si añadimos un sistema de coordenadas Cartegian (ya sabes, el X y Y eje - thingy) y colocamos el centro del círculo en su origen (0,0), entonces podemos crear un triángulo rectángulo. El hombre griego famoso, señor Pythagoras, nos dijo que podemos determinar la longitud de la hipotenusa de un triángulo rectángulo con la siguiente ecuación:
a2 + b2 = c2
Como la hipotenusa pasa a ser nuestra radio y el centro del círculo es también el origen del sistema coordinado, podemos afirmar lo siguiente:
R2 = X2 + Y2
Sabemos que R es el radio de nuestro circulo. Por lo que tiene que haber una manera de calcular X e Y. Lo único que necesitamos para es algunos trigonometría.
Algunos de ustedes oí gemir al oír la trigonometría de la palabra. Pero confianza me no es tan difícil como parece.
Tal vez usted recuerda SOHCAHTOA mnemónica de tus clases de matemáticas en la escuela. Si también te acuerdas de lo que significa, entonces usted sabe todo lo que necesitas saber para esto. Si no es así, entonces voy a explicar aquí.
SOHCAHTOA está parado para:
Seno = opuesto / hipotenusa
Coseno = adyacente/hipotenusa
Tangens = opuesto / adyacente
Por ahora podemos olvidarnos el tangens como no necesitamos eso.
Sabemos que la hipotenusa es igual a nuestra radio por lo que nos podemos intercambiarlos. Lo único que necesitamos ahora es un ángulo para trabajar con. ¿Sabemos que uno? Sí, de hecho, podemos calcular los tres si nos gustaría.
Sabemos con certeza que uno de ellos es 90degr. Como es un triángulo rectángulo, pero no podemos usar eso. Pero, como he dicho al principio, una mano estará siempre a un cierto ángulo a es punto de partida y fácilmente podemos calcular ese ángulo.
ángulo = medidas adoptadas * 360 (círculo completo) / máximo cantidad de pasos
Así que en el caso de las manos de segundos y minutos se trata de:
ángulo = minutos (o segundos) * 360 / 60 o ángulo = minutos (o segundos) * 6
En el caso de las horas será:
ángulo = horas * 360 / 12 o el ángulo = horas * 30
Este ángulo es lo último que necesitábamos para calcular X y Y. (si desea calcular el ángulo 3 a 180 menos los dos conocer ángulos y que tengas el 3).
Permite reunir a todo ahora y llenar de lo que ya sabe:
ángulo de pecado = opuesto / radio
cos ángulo = adyacente/radio
Como el vértice del ángulo es el mismo que el origen del sistema coordinado:
ángulo de pecado = y/radio
cos ángulo = x / radio
o
x = radio * cos ángulo
y = radio * ángulo de pecado
Pero ¿qué pasa si el vértice del ángulo no se encuentra en el origen? Entonces tenemos que tomar las coordenadas de ese punto en la ecuación.
x = una + radio * cos ángulo
y = b + radio * ángulo de pecado
Ahora que conocemos las coordenadas del punto final de nuestra mano!
Bien... Euhh... absolutamente no... hay un pequeño problema:
Si se escribe un código con estas ecuaciones obtienes un reloj que comienza en el reloj de o 3 y corre hacia la izquierda. Eso es porque nuestros cálculos angulares están en relación con el eje x y los que necesitamos para el reloj deben estar en relación con el eje y. Luckely con un poco de magia matemática, este problema se resuelve muy rápidamente:
x = una + radio * ángulo de pecado
y = b - radio * cos ángulo
Lo que ocurrió aquí es que cambió a la relación con el eje cambiando pecado y lechuga romana y cambiamos la dirección de izquierda a derecha por cambio de + a-.
Esto era la teoría, en los próximos pasos pondremos en práctica.