如何以编程方式创建具有动画方面的图片

时间:2008-11-06 04:44:47

标签: python image graphics animation drawing

背景

我被客户要求创建一幅世界图片,其中包含来自世界某一地区的箭头/光线。

光线将被随机化,代表一个交易,在它们发生后会逐渐消失,随着时间的推移会随着频率的增加而增加。光线将从一个国家的边界​​开始,到另一个国家的边界​​结束。当每个动画交易发生时,所有交易金额的连续更新总和将显示在图像的底部。个别交易的金额将随机化。图像上还会显示一年,每隔n秒会增加一次。

随机化,求和和递增对我来说不是问题,但我对如何接近箭头/光线的动画感到茫然。

我的问题是,最好的方法是什么?哪些框架/库最适合这项工作?

我对python非常流利,所以对我来说python建议最容易,但我对任何优雅的方式都持开放态度。 客户端将此作为幻灯片呈现在Windows机器中的演示文稿中。

3 个答案:

答案 0 :(得分:2)

  

客户端会将其显示为Windows计算机中演示文稿中的幻灯片

我认为这是你答案的关键。在进入3d实现并编写世界上所有代码以创建此功能之前,您需要查看演示文稿软件。很有可能,您的选择将归结为两件事:

  1. 动画Gif
  2. 自定义演示文稿脚本
  3. 显然,动画gif并不理想,因为它在完成渲染时重复,并且使其持续很长时间会产生一个大的gif。

    自定义演示文稿脚本可能是另一种允许他在演示文稿中提出它而不运行任何辅助程序或做任何奇怪事情的方法。我不确定哪个演示应用程序是目标,但这可能是有价值的信息。

    他听起来像是非技术性的,并且要求他没有意识到的事情会很困难。我认为你应该提出一些选择,解释实施它们的困难,并提出另一种解决方案,这些解决方案属于“砰然响应”范围。

答案 1 :(得分:1)

这在很大程度上取决于你想要花费在此上的努力,而是一个简单方法的基本轮廓。将加载箭头图像,并使用绘图库着色并沿您想要指向的方向旋转(或使用形状/曲线绘制它)。

最后,为了实际制作动画,它会根据时间在坐标之间进行插值。

如果只是为了演示,我会使用Macromedia Flash或类似的动画程序。(会像上面那样做,但你不需要编程任何东西)

答案 2 :(得分:1)

如果你喜欢冒险,请使用OpenGL:)

您可以在纹理平面(地球地图)顶部的三维空间中绘制贝塞尔曲线,您可以为它们指定厚度,并且可以在末尾绘制一个点(小圆锥)。这很简单,它看起来不错,问题是学习OpenGL的基础知识,如果你之前没有使用它,但这很有趣,如果你在编程图形时可能很有用。

您可以使用pyopenglpyglet来使用python中的OpenGL。

如果您以这种方式制作动画,则可以将其捕捉到可以放在演示幻灯片上的avi文件(使用camtasia或类似的东西)。

相关问题