我目前正在开发一个应用程序,它使用视频投影仪来创建类似于真实激光的效果。可以在 Youtube 上看到我正在尝试存档的一个非常好的示例。
基本上,该应用程序需要绘制各种颜色的简单移动形状。我有一个使用 pycairo 的非常复杂的设置,允许基元通过一组修改器来更改位置、缩放和旋转。这允许很大的灵活性。
不幸的是,pycairo 在画虚线圆方面似乎很慢。我试着画了 30 个这样的圆圈:
# setup, transforms...
# Example color-scheme:
self._colors = [(0.0, 1.0, 0.0)]
# drawing dashes one after another
for count, color in enumerate(self._colors):
cr.set_dash(dash_len, self._dash_len * count)
cr.set_source_rgb(color[0], color[1], color[2])
cr.arc(0, 0, self.radius(), 0, 2 * math.pi)
cr.stroke()
整个事情看起来像这样。这无法使用 Core2Duo 在 800x600 上维持 25fps。
有没有更快的画圆的方法?质量不是真正的问题。
谢谢你的帮助!