Aplicación: Encadenar movimientos
El siguiente applet contiene dos botones. El primero sitúa el punto P en las coordenadas que determinemos en la casilla de entrada. El segundo botón desplaza el punto P según el vector que determinemos en la casilla de entrada.
Analicemos los guiones:
Botón Posición:
VistaActiva[1]
ZoomAcerca[1]
VistaActiva[ 2 ]
Visibilidad[CP,2,True]
Visibilidad[CD,2,False]
Visibilidad[Q1,1,False]
Visibilidad[Q2,1,False]
Trabajamos con dos ventanas. En la de la izquierda (la 2) tenemos los botones y las casillas de entrada. En la de la derecha (la 1) tenemos el punto. El usuario actúa sobre la de la izquierda haciendo clic en los botones o rellenando las casillas de entrada o bien sobre la de la derecha moviendo el punto manualmente. Por tanto la vista activa puede ser la 1 o la 2.
Cuando el usuario haga clic sobre el botón Posición tendremos que borrar el posible rastro que hubiese en la vista 1 (tres primeras líneas del guion), mostrar la casilla de entrada de las coordenadas (línea 4) y ocultar los otros elementos (tres últimas líneas).
Botón Desplazamiento
h1=0
hx2=0
hy2=0
Visibilidad[CD,2,True]
Visibilidad[CP,2,False]
Visibilidad[Q1,1,true]
Visibilidad[Q2,1,true]
Iniciamos tres valores numéricos a 0 (luego los comentaremos). Mostramos la casilla de entrada (CD) del vector y ocultamos la del punto (CP). Mostramos el punto rojo (Q1) y el punto verde (Q2) que no se ve porqué está en una capa inferior.
Casilla de entrada CD
VistaActiva[1]
ZoomAcerca[1]
VistaActiva[ 2 ]
h1=0
hx2=0
hy2=0
IniciaAnimación[hx1,true]
Borramos el rastro en la vista 1. Reiniciamos tres valores a 0. Iniciamos la animación de h1.
h1 es un deslizador que toma valores de 0 a 1 de 0,01 en 0,01 a velocidad 2 incrementado solo una vez. El punto rojo (Q1) está definido como: P + (h1 x(v), h1 y(v)).
Valor h1
Si[h1==1,IniciaAnimación[hx2,true]]
Cuando el valor de h1 llegue a 1, se iniciará la animación de hx2. El punto verde iniciará su andadura, primero horizontalmente y después verticalmente (cuando hx2 llegue a 1, se iniciará la animación de hy2). Ya no comento el resto de guiones, pues es fácil de interpretar.
Nota
La velocidad del deslizador la hemos marcado a 2, por tanto es constante. No así la del punto que depende de la longitud del recorrido. Lo podemos observar en un desplazamiento (2,4) del punto verde. Verticalmente va el doble de rápido que horizontalmente porqué tiene que recorrer el doble distancia.
Para conseguir una velocidad uniforme tendremos que poner la velocidad de los deslizadores hx2 y hy2 en función de la longitud a recorrer: 4/x(v) y 4/y(v) respectivamente.