6

私は現在、ビデオプロジェクターを使用して実際のレーザーに似た効果を作成するアプリケーションに取り組んでいます。私がアーカイブしようとしているものの本当に良い例は、ここの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を維持することはできません。

円を描くより速い方法はありますか?品質は実際には問題ではありません。

ご協力いただきありがとうございます!

4

1 に答える 1

5

Cairoは、高品質のレンダリングを目指しています。これは、2Dのものの静的または準静的レンダリングで多く使用されます。

遅くなる可能性があるのも不思議ではありません-私があなたの代わりに行う最初の試みはpygame+pyopenGLを使用することだと思います-申し訳ありませんが、完全な例を紹介していませんが、このプロジェクトは良いようです開始: http ://www.willmcgugan.com/blog/tech/2007/6/4/opengl-sample-code-for-pygame/

于 2012-10-04T17:46:58.243 に答える