Buenas gente!
Vereis, tengo un problemilla que no se como cojones resolver.
Estoy programando una aplicación en la que girando a izquierda o derecha una determinada "ruedecilla", las imagenes de un directorio deben avanzar o retroceder en función de la dirección del giro.
Es decir, se carga el programa y se muestra la primera imagen. Giro un cuarto (o lo que sea) y se muestra la siguiente imagen. Otro trozo a la derecha y la siguiente imagen y visceversa, si la giro hacia la izquierda, se muestra la imagen anterior a la actual.
Ademas, esto no es importante, pero si se llega a la ultima se muestra la primera y lo mismo con la primera si se gira hacia la izquierda, que se muestra la ultima.
Bien, el tema es que dicha rueda, da valores entre 0 y 2PI, así que suponiendo que la rueda esta a 0, si la giro media vuelta hacia la derecha me da 3.14 y si la giro media vuelta mas a la derecha, da 6.28, pero si giro un poquito mas a la derecha, ya da 0 con algo, osea que no son valores acumulativos.
Necesito encontrar una forma de dictaminar si estoy girando hacia la derecha o hacia la izquierda!.
Si guardo un angulo anterior y uno actual y los comparo, puedo establecer que si el actual es mas pequeño que el anterior, he girado hacia la izquierda, y si el actual es mas grande que el anterior, he girado la rueda a la derecha.
El problema viene cuando resulta que el anterior es, por ejemplo 6.veintipoco, y el actual ya es 0 con algo, que aquí, resulta que el actual es mas pequeño que el anterior y el algoritmo comparativo contemplaria el caso de haber girado a la izquierda.
Esto crea un lio de la ostia con las imagenes que se muestran porque se pierde el orden momentaniamente.
Podria intentar hacer un liillo de condicionales y tal, pero no acudo aquí por eso.
Acudo, porque me gustaria saber si exsiste alguna forma de dictaminar la direccion de giro matemáticamente.
Mediante dos vectores, es posible conocer el angulo entre ellos y la direccion de giro de los vectores, por medio de producto vectorial y el aCos o aTan2, pero en este caso, no dispongo de vectores.
Es solamente algo que dice, rota tanto, rota tanto ahora, rota tanto esta vez y así continuamente...
Me hechais una manita pliz!?
Gracias nenes!
Light.