1

ベジェ曲線の長さを計算するために、pyx を使用しています。

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())

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

ただし、曲線の長さを取得するためのこのライブラリ呼び出しは非常に遅いことがわかりました。パフォーマンスが向上する可能性のある他の Python ライブラリはありますか?

4

1 に答える 1

0

私はおそらく pypy を使用して呼び出し可能な独自のベジエをロールするでしょう。しばらく前にグラフィックスのクラスを受講したとき、特に困難だったことを思い出しません。純粋な python でコーディングすると、pypy は非常に高速になります。pypy を使用できない場合は、cpython で cython を使用するのが次善の策です。

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

于 2012-05-04T05:52:21.220 に答える