Hay una docena de formas en que podría formular esta pregunta, pero para mantener mis pensamientos en línea, lo estoy formulando de acuerdo con mi problema en cuestión.
Así que estoy creando una plataforma flotante que me gustaría poder simplemente viajar de un punto designado a otro, y luego regresar al primero, y simplemente pasar entre los dos en línea recta. Sin embargo, solo para hacerlo un poco más interesante, quiero agregar algunas reglas a la plataforma.
- Lo estoy codificando para viajar múltiplos de valores de mosaico completos de datos mundiales. Entonces, si la plataforma no es estacionaria, entonces viajará al menos un ancho o altura de mosaico completo.
- Dentro de una longitud de mosaico, me gustaría acelerar de una parada a una velocidad máxima dada.
- Al llegar a la distancia de una pieza de mosaico, me gustaría que se detuviera en una coordenada de mosaico dada y luego repetir el proceso en reversa.
Las dos primeras partes no son demasiado difíciles, esencialmente estoy teniendo problemas con la tercera parte. Me gustaría que la plataforma se detuviera exactamente en una coordenada de mosaico, pero dado que estoy trabajando con la aceleración, parece fácil comenzar simplemente a aplicar la aceleración en la dirección opuesta a un valor que almacene la velocidad actual de la plataforma una vez que alcance la longitud de un mosaico de distancia (suponiendo que el mosaico está viajando más de una longitud de mosaico, pero para mantener las cosas simples, supongamos que lo es), pero entonces la pregunta es ¿cuál sería el valor correcto para que la aceleración se incremente y produzca este efecto? ¿Cómo encontraría ese valor?
acceleration = desired_velocity - currentVelocity
luego aplique esa aceleración como lo haría normalmente. Crearé una respuesta un poco más mostrando lo que hago.