Para realizar el reloj analogo necesitamos trabajar con un poco de matematicas y en concreto con radianes, senos y cosenos y un poco de VBA (para animar el reloj).
Un radian es, la longitud del arco formado por la extensión del radio de una circunferencia osea que la longitud del arco es igual al radio, los tamaños del radio depende del tamaño de la circunferencia
http://www.disfrutalasmatematicas.com/geometria/radianes.html
También sabemos que pi (3.1416) es igual a 180º (grados) y dos pi es igual a 360º --para teoría de porque es ésto así, existe toneladas de información en la red nosotros solo lo damos por hecho.
Si graficamos las funciones Seno y Coseno utilizando radianes tenemos este comportamiento
http://kambry.es/Apuntes%20Web/Paginas%20web%20de%20Matematicas/Analisis_Algebra/Fisica/Ondas.htm
La gráfica corresponde al seno, la del coseno es igual pero desfasada 180º
Con esta teoría podemos empezar a realizar el reloj análogo usando Excel
Primero realizamos la tabla
Pi lo pueden cambiar por 3.1416 o por la funcion =pi() dará casi el mismo resultado ( Excel usa 15 digitos para calcular pi )
Graficamos estas coordenadas utilizando el tipo de gráfica de dispersión con lineas rectas
Invertimos Columna por renglón
Ya en la grafica seleccionamos cualquiera de los ejes, con el botón derecho del mouse.
Hacemos lo mismo con el otro eje
A la gráfica le borramos la cabecera y las etiquetas de las series para obtener una imagen "limpia"
Ya sabemos que de cero a pi hay una mitad de circunferencia o 180 grados o sea que cada grado lo podemos representar como pi*(1/180).
Transformamos nuestra ecuaciones para obtener la relación de cambio de por cada grado.
Cada nuevo valor que se ponga transforma el resultado de las coordenadas (x,y) de la gráfica.
Ya quedo una parte del reloj, que tal si lo animamos...
En la celda A4 pondremos un contador consecutivo que llegue a 180 y cambie a cero para comenzar de nuevo. Excel cuenta con un editor de visual basic que se activa con las teclas Alt+F11.
En el modulo nuevo se inserta el siguiente código visual basic:
Dim boton As Boolean
Sub animacion_reloj()
boton = Not (boton)
inicio:
C = 0
Do While boton = True
DoEvents
C = C + 1
[A4] = C
If C = 180 Then GoTo inicio:
Loop
End Sub
Observaron que al llegar a 180 regresaba al punto de partida, ésto es porque solo estamos utilizando un pi, para que de la vuelta completa necesitamos 2 pi y ya no necesitamos que cuando llegue a 180 se regrese a cero.
En un Reloj análogo, la caratula tiene 60 segundos, 60 minutos y 12 horas los cuales serán nuestros valores máximo para la circunferencia, estos valores remplazaran los 360 grados.
Para los segundos quedaran valor/60 en vez de valor/360 para que grafique segundos en vez de grados
Pero es tan rápido que los 60 segundos representados parecen que son de 5 segundos, necesitamos un timer que nos de los segundos de a segundo.
En la celda A4 colocamos la funcion =now() en español sería?
=ahora() para aquellos que tengan Excel en Español. Y en la celda B4 colocamos la funcion =second(A4) o =segundo(A4), el resto quedara igual
Para que se este reflejando en tiempo real los cambios de segundo es necesario presionar F9 que fuerza a Excel a recalcular las funciones.
Si modificamos nuestro código para que este cálculo sea automático, lo podemos hacer de esa forma un código que diga a excel que recalcule las funciones o un código que escriba en la celda el valor del tiempo actual.
Para los minutos la circunferencia se divide en 60 pasos y la función es =minute(a4)
Para las horas se divide en 12 pasos y la función es =hour(a4)
Y así quedo esto... nos vemos
No comments:
Post a Comment