1

背景

一位客户要求我创建一张世界图片,其中包含从世界的一个地方到另一个地方的动画箭头/射线。

光线将是随机的,将代表一个交易,在它们发生后会淡出,并且会随着时间的推移而增加频率。光线将从一个国家的边界​​开始,并在另一个国家的边界​​结束。随着每个动画交易的发生,所有交易金额的不断更新的总和将显示在图像的底部。个别交易的金额将是随机的。图像上还会显示一年,每 n 秒递增一次。

随机化、求和和递增对我来说不是问题,但我不知道如何处理箭头/射线的动画。

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

我最精通python,所以python建议对我来说最容易,但我愿意接受任何优雅的方式来做到这一点。客户端将在 Windows 机器的演示文稿中将其呈现为幻灯片。

4

3 回答 3

2

客户端将在 Windows 机器的演示文稿中将其呈现为幻灯片

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

  1. 动画 Gif
  2. 自定义演示脚本

显然,动画 gif 并不理想,因为它在渲染完成时会重复,并且要使其持续很长时间会产生很大的 gif。

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

他听起来更像是非技术性的,并且要求一些他没有意识到的东西会很困难。我认为您应该提出一些选择,解释实施它们的困难,并提出另一种属于“物有所值”范围的解决方案。

于 2008-11-06T05:07:21.070 回答
1

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

最后,实际动画它基于时间在坐标之间进行插值。

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

于 2008-11-06T04:53:21.363 回答
1

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

You can draw bezier curves in 3d space on top of a textured plane (earth map), you can specify a thickness for them and you can draw a point (small cone) at the end. It's easy and it looks nice, problem is learning the basics of OpenGL if you haven't used it before but that would be fun and probably useful if your in to programing graphics.

You can use OpenGL from python either with pyopengl or pyglet.

If you make the animation this way you can capture it to an avi file (using camtasia or something similar) that can be put onto a presentation slide.

于 2008-11-06T07:52:57.007 回答