2

pycairoと を使用して、簡単なゲーム/インタラクティブなベクトル描画を表示したいと思いpython3ます。

ウィンドウ自体の作成を管理するには、「ウィジェットツールキット」も必要になると思いますpycairo。その部分だけでは実行できないと思います(出力をファイルに保存するだけです)。

私はPySide(に基づいてQt、かなり複雑に思われる)およびgi(gtk3に基づいてgi-cairo、チュートリアルや例を見つけることさえできなかったと思います)を調べました。それらを と統合する方法がよくわかりませんpycairo

聞いたことpygameがありますが、サポートされていないようですpython3(少なくとも、aptに表示されるpython3-pygameはありません)。

ウィンドウを作成し、簡単なアニメーションを描画するために、いくつかの標準ウィンドウ ツールキットを使用pycairoしたスターター サンプルを用意できますか?python3

編集:例がアニメーション化されている場合のボーナスポイント。

4

1 に答える 1

0

これは、(おそらくアニメーション化された) SVG ファイルを画面に表示する PySide の完全なアプリケーションです。

import sys
from PySide import QtCore, QtGui, QtSvg

app = QtGui.QApplication(sys.argv)

widget = QtSvg.QSvgWidget('animation.svg')
widget.show()

app.exec_()

また、Graphics View Framework を使用して奇妙なベクトル形状をアニメーション化する別の例を次に示します。

import sys
from PySide.QtCore import *
from PySide.QtGui import *

app = QApplication(sys.argv)

path = QPainterPath()
path.quadTo(0,20, 20,20)
path.lineTo(10,10)

item = QGraphicsPathItem(path)

timer = QTimeLine(5000)
timer.setFrameRange(0, 100)

ani = QGraphicsItemAnimation()
ani.setItem(item)
ani.setTimeLine(timer)

ani.setPosAt(1, QPointF(200,200))
ani.setRotationAt(1, 360)
ani.setScaleAt(1, 3,3)

scene = QGraphicsScene(0,0, 300,300)
scene.addItem(item)

view = QGraphicsView(scene)
view.setRenderHints(QPainter.Antialiasing)
view.show()

timer.start()

app.exec_()
于 2012-08-30T20:47:33.163 に答える