2008-09-15 23 views
3

私はクロスプラットフォームの描画プログラムを作成したいと思います。私のアプリケーションを書くための1つの要件は、私はキャンバス上のピクセルレベルの精度を持っているということです。たとえば、私は、誰かに頼るのではなく、私自身の線描画アルゴリズムを書こうとしています。私はアンチエイリアス(ピクセルレベルのコントロールが必要です)を望んでいません。画面上のユーザーのやりとりを素早く反応的にしたいと考えています(高速アルゴリズムを書くことができなくなっています)。グラフィックスアプリケーション用の高速、ピクセル精度2D描画API?

理想的には、私はこれをPythonで書いてみたい、あるいはJavaを第2の選択肢として書いてみたいと思う。最終的なアプリをクロスプラットフォームに簡単にする機能は必須です。私はそれらの周りに抽象レイヤーを書くことができる限り、必要に応じて異なるOSの異なるAPIに提出します。何か案は?

補足:私はの画面上にを描く能力が必要です。私が把握しているファイルに描画する。

答えて

3

私は今週、ライブラリpygletを使ってPythonからOpenGLを使って2Dグラフィックスを実行するためのスライドとデモコードをまとめました。 http://tartley.com/?p=378

これは非常に高速です(私は、約50の頂点を持つ画面の周りを動く独立した配置され、方向づけられたオブジェクトを約1,000個取得することができました)。

私はこの環境で書いたすべてのコードは、WindowsやLinux、Mac(そしてPypyのような不明瞭な環境)でも動作します。

更新:同じトピックに関する新しい記事の束があまりにもありますhttp://tartley.com/?cat=27

+0

これは古い投稿だとわかりましたが、リンクが壊れています。 – enobrev

+0

ありがとうございます。今修正されました。 –

0

QTのCanvasとQPainterは、C++を使いたい場合にこの仕事に非常に適しています。それはクロスプラットフォームです。

QT用のPythonバインディングがありますが、私はそれを使ったことはありません。

SWTを使用するJavaの場合、キャンバスのピクセルレベルの操作はやや難しく、遅いので、私はそれをお勧めしません。一方、スイングのキャンバスはかなり良いと応答しています。私はAWTオプションを使用したことはありませんが、おそらくそこに行きたくはありません。

2

Python用Pygletライブラリがあなたのニーズに合っているかもしれません。クロスプラットフォームのグラフィックスAPIであるOpenGLを使用できます。アンチエイリアスを無効にして、画面の領域をバッファまたはファイルにキャプチャすることができます。さらに、イベント処理、リソース読み込み、およびイメージ操作システムを使用することもできます。おそらくそれをPIL(Python Image Library)に結びつけることもできます。また、一般的なクロスプラットフォームのベクターグラフィックスライブラリであるCairoも間違いなく使用できます。

純粋なPyOpenGLの代わりにPygletについて言及しています。なぜなら、Pygletは多くの醜いOpenGLを透過的に扱うからです。

友人と私は現在、Pygletを使用している描画プログラムに取り組んでいます。たとえば、OpenGLは常にOS X上でダブルバッファされているので、ディスプレイが更新されるたびにフリップされるため、すべてを現在のフレーム用ともう1枚のフレーム用に2回描画する必要があります。現在進行中のin this subversion repositoryを見ることができます。 (トランクのSplatterboard.pyは実行したいファイルです。)あなたがsvnを使用していないなら、私はあなたに最新のソースの.zipを電子メールで送ります。あなたがそれを調べるならば、コードを盗むのは気をつけてください。

0

私はそれは美しく、クロスプラットフォームだとあなたは、画素制御ごとに、あなたはあなたを変更した場合取得することができますwxPython

をお勧めしますあなたはpygletやaggのようなライブラリでそれを使うことができるということを心に留めておいてください。

ドキュメントやデモのダウンロードで何をしようとしているのか、いくつかの便利な例があります。

1

言語選択が開いている場合、Haxeで作成されたFlashファイルがある可能性があります。 Haxeは無料で完全な動的プログラミング言語です。 Mac、Windows、Linux上で動作する仮想マシン(Java、Ruby、Parrotなど)に関連するNekoがあります。いくつかの点で、新しい改良された形のFlashであることは当然のことです。 http://haxe.org/

関連する問題