Как программно создать картинку с анимированными аспектами - PullRequest
1 голос
/ 06 ноября 2008

Фон

Клиент попросил меня создать картину мира с анимированными стрелками / лучами, которые приходят из одной части мира в другую.

Лучи будут рандомизированы, будут представлять транзакцию, будут затухать после того, как они произойдут, и с течением времени частота будет увеличиваться. Лучи начнутся на границе одной страны и закончатся на границе другой. Поскольку каждая анимированная транзакция происходит, в нижней части изображения будет отображаться постоянно обновляемая сумма сумм всех транзакций. Суммы отдельных транзакций будут рандомизированы. На изображении также будет показан год, который будет увеличиваться каждые n секунд.

Рандомизация, суммирование и приращение не являются для меня проблемой, но я не знаю, как приблизиться к анимации стрелок / лучей.

Мой вопрос: каков наилучший способ сделать это? Какие платформы / библиотеки лучше всего подходят для этой работы?

Я свободно владею питоном, поэтому предложения по питону для меня наиболее просты, но я открыт для любого элегантного способа сделать это. Клиент представит это как слайд в презентации на машине с Windows.

Ответы [ 3 ]

2 голосов
/ 06 ноября 2008

Клиент представит это как слайд в презентации на машине с Windows

Я думаю, что это ключ к вашему ответу. Прежде чем перейти к 3D-реализации и написать весь код в мире для создания этой функции, вам нужно взглянуть на программное обеспечение для презентации. Скорее всего, ваши варианты сводятся к двум вещам:

  1. Анимированный GIF
  2. Пользовательские сценарии презентации

Очевидно, что анимированный GIF не идеален из-за того, что он повторяется, когда завершает рендеринг, и для его длительной работы потребуется большой GIF.

Пользовательские сценарии презентации, вероятно, были бы другим способом, позволяющим ему представить его в презентации без запуска сторонних программ или выполнения каких-либо странных действий. Я не уверен, какое приложение презентации является целевым, но это может быть ценной информацией.

Звучит так, будто он более не техничен, и запросить что-то, чего он не понимает, будет сложно. Я думаю, что вам следует придумать некоторые варианты, объяснить сложность их реализации и предложить другое решение, которое попадает в диапазон «отдачи от денег».

1 голос
/ 06 ноября 2008

Если вы любите приключения, используйте OpenGL:)

Вы можете нарисовать кривые Безье в трехмерном пространстве поверх текстурированной плоскости (карта земли), вы можете указать толщину для них и нарисовать точку (маленький конус) в конце. Это просто и выглядит хорошо, проблема в том, чтобы изучить основы OpenGL, если вы раньше не использовали его, но это было бы забавно и, вероятно, полезно, если вы планируете программировать графику.

Вы можете использовать OpenGL из python с pyopengl или pyglet .

Если вы делаете анимацию таким образом, вы можете записать ее в avi-файл (используя camtasia или что-то подобное), который можно поместить на слайд презентации.

1 голос
/ 06 ноября 2008

Это в значительной степени зависит от усилий, которые вы хотите потратить на это, но основной план легкого пути. Можно было бы загрузить изображение стрелки и использовать библиотеку чертежей, чтобы раскрасить и повернуть ее в нужном вам направлении (или нарисовать с использованием фигур / кривых).

Наконец, чтобы фактически оживить это, интерполируйте между координатами, основанными на времени.

Если бы это было только для презентации, я бы использовал Macromedia Flash или аналогичную анимационную программу (сделал бы то же самое, что и выше, но вам не нужно ничего программировать)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...