Pregunta

Fondo

Un cliente me ha pedido que cree una imagen del mundo que tenga flechas / rayos animados que vienen de una parte del mundo a otra.

Los rayos se aleatorizarán, representarán una transacción, se desvanecerán después de que sucedan y aumentarán en frecuencia a medida que pase el tiempo. Los rayos comenzarán en el límite de un país y terminarán en el de otro. A medida que ocurre cada transacción animada, se mostrará una suma de actualización continua de los importes de todas las transacciones en la parte inferior de la imagen. Los montos de las transacciones individuales serán aleatorizados. También se mostrará un año en la imagen que se incrementará cada n segundos.

La aleatorización, la suma y el incremento no son un problema para mí, pero no sé cómo abordar la animación de las flechas / rayos.

Mi pregunta es ¿cuál es la mejor manera de hacer esto? ¿Qué frameworks / bibliotecas son los más adecuados para este trabajo?

Soy muy fluido en Python, por lo que las sugerencias de Python son más fáciles para mí, pero estoy abierto a cualquier forma elegante de hacerlo. El cliente presentará esto como una diapositiva en una presentación en una máquina con Windows.

¿Fue útil?

Solución

Si eres aventurero usa OpenGL :)

Puede dibujar curvas bezier en el espacio 3d en la parte superior de un plano texturizado (mapa de la tierra), puede especificar un grosor para ellas y puede dibujar un punto (cono pequeño) al final. Es fácil y se ve bien, el problema es aprender los conceptos básicos de OpenGL si no lo has usado antes, pero eso sería divertido y probablemente útil si estás programando gráficos.

Puede usar OpenGL desde python con pyopengl o pyglet .

Si realiza la animación de esta manera, puede capturarla en un archivo avi (usando camtasia o algo similar) que se puede poner en una diapositiva de presentación.

Otros consejos

  

El cliente presentará esto como una diapositiva en una presentación en una máquina con Windows

Creo que esta es la clave de su respuesta. Antes de ir a una implementación en 3D y escribir todo el código del mundo para crear esta función, debe mirar el software de presentación. Lo más probable es que sus opciones se reduzcan a dos cosas:

  1. Gif Animado
  2. Scripts de presentación personalizados

Obviamente, un gif animado no es ideal debido al hecho de que se repite cuando termina de renderizar, y hacer que dure mucho tiempo sería un gif grande.

Las secuencias de comandos de presentación personalizadas probablemente serían la otra forma de permitir que aparezca en una presentación sin ejecutar ningún programa secundario o hacer algo extraño. No estoy seguro de qué aplicación de presentación es el objetivo, pero esta podría ser información valiosa.

Parece que no es tan técnico y que solicitar algo de lo que no se da cuenta será difícil. Creo que deberías proponer algunas opciones, explicar la dificultad de implementarlas y sugerir otra solución que se encuentre dentro del rango de "explotar tu dinero".

Depende en gran medida del esfuerzo que desee gastar en esto, pero el esquema básico de una manera fácil. Sería cargar una imagen de una flecha y usar una biblioteca de dibujo para colorear y rotar en la dirección que desea apuntar (o dibujarla usando formas / curvas).

Finalmente para animarlo, interpolar entre las coordenadas en función del tiempo.

Sin embargo, si es solo para una presentación, usaría Macromedia Flash, o un programa de animación similar. (Haría lo mismo que arriba pero no necesita programar nada)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top