4

AS3でプログラムによって3次ベジェ曲線を描画するための最良の方法は何ですか?このGraphicsクラスは2次曲線のみをサポートしているようです。:(私は次のようなことができるようになりたいです:

var startPoint:Point = new Point(0, 0);
var endPoint:Point = new Point(5, 5);
var control1:Point = new Point(5, 0);
var control2:Point = new Point(0, 5);

var myBezier:Sprite = getBezier(startPoint, control1, control2, endPoint);

パフォーマンスの目標として、私はこれらのうちの最大50個を一度にステージに置くことを計画しています。

4

3 に答える 3

4

注: Flash Player 11以降には、三次曲線を描画するためのネイティブメソッドであるcubicCurveTo()が含まれています。これは、FP11をターゲットにしている場合に最速のメソッドです。

先週、任意の順序のベジェ曲線を描くクラスを作成しました。

コードは最適化されていませんが、私のテストでは正常に機能します。パフォーマンスはアニメーションを行うための許容可能なイベントです(ただし、最適化されていないと言ったので、それを悪用するのは良い考えではないと思います。もちろん、プレーヤーは次のことができるので、これらを2次曲線に使用することは意味がありません。ネイティブにそれを行います)。

あなたがそれを使用したい、または見てみたいなら、コードはここにあります:

BezierCurveクラス

サンプルコード

サンプルコードを使用すると、問題なく使用する方法を理解できると思います(非常に簡単で、多少コメントが付けられています)。しかし、問題が発生した場合は、遠ざけてください。

必要に応じて自由に使用してください。

于 2010-07-14T23:56:29.547 に答える
1

二次式がそのAPI呼び出しに組み込まれている場合は、独自の三次式実装を作成するためにベジェを十分に理解する必要があります。

このように。

于 2010-07-14T23:25:16.533 に答える
0

このサイトでは、3次ベジェ曲線を近似するさまざまな方法をリストして説明しています:http:
//timotheegroleau.com/Flash/articles/cubic_bezier_in_flash.htm

一番下で、彼は、近似として4つの二次曲線を使用し、すべての方法の中で精度とパフォーマンスの点で最高のように見える、見出し固定中点アプローチを使用した方法を示しています。

于 2011-01-10T13:40:03.853 に答える