2012-05-04 38 views
1

、私はPYXを使用しています。「速い」ベジェ曲線の長さのPythonライブラリ

from pyx import path, unit 
bez = path.curve(p[0], p[1], p[0], p[1] + d, q[0], q[1]-d, q[0],q[1]) 
edgelen = unit.tocm(bez.arclen()) 

ここpqは、曲線の端点であり、dは、2つの制御点の相対位置のオフセット垂直です。 (私のアプリケーションでは、カーブは常に「上向き」です)。

しかし、私は、曲線の長さを取得するため、このライブラリコールが痛々しいほど遅いことがわかりました。より良いパフォーマンスを持つかもしれない他のPythonライブラリはありますか?

答えて

0

私はおそらくpypyを使用して呼び出し可能な自分のベジェをロールバックしたい - 私はしばらく前に、グラフィックスクラスを取ったとき、私は特に困難であること、それを覚えていません。あなたが純粋なpythonでそれをコード化するならば、pypyはそれをかなり速くするべきです。 pypyがオプションでない場合は、cpythonでcythonを使うのが一番良い方法です。

は、私は多くの場合、純粋なPythonモジュールを取るよ、とM4の前処理は、それは同じことの純粋なPythonとcythonバージョンに共通のコードを取得します。それはかなりうまくいくようです。確かに、モジュールのメンテナンスバージョンでコードを複製せずにメソッド呼び出しを避けるために、m4をPythonよりもマクロ言語として使用することさえあります。

+0

は私が何であるかhttp://en.wikipedia.org/wiki/M4_(computer_language)を考え出したが、私は前にそれを使用していないので、私は非常にあなたの第二段落に従っていませんでした。 – Joe

関連する問題