-2

だから私は描画メソッドで円を作成しました:

glLineWidth(16);
glColor4ub(0, 255, 0, 255);
drawCircle( ccp(s.width/2,  s.height/2), 100, 0, 10, NO);

この形をアニメーションで長方形に変換できるかどうか知りたいのですが。ありがとうございました 。私の英語でごめんなさい私はフランス語です:/

4

2 に答える 2

2

簡単にするために、4つの立方ベジェ曲線(円の象限ごとに1つの曲線)を使用します。(これは完全な円ではありませんが、100セグメントの円でもありません!)次に、cocos2dが提供する機能を使用して、曲線の始点と終点に垂直または水平に並ぶまで、時間の経過とともに各曲線の制御点schedule:を徐々に移動します。 。これにより、曲線が4本の直線に変わります。長方形です。

まあ、正確には正方形。また、4つの曲線すべての始点終点を移動して、正方形ではない長方形を形成する必要がありますが、私が望むアイデアは得られますか?

追加情報については、次のリンクを参照してください。

編集:画像を追加

ベジェサークル

d =次の方程式から計算されたd値: http ://www.cgafaq.info/wiki/Bezier_Circle

start control 1 control 2、およびendは、cocos2dで3次ベジェ曲線を作成するために必要な4つのポイントです。

于 2012-04-20T18:01:28.367 に答える
0

このためのコードを作成する必要があります。

たとえば、円の周りにいくつかのコントロールポイントを作成できます。これらの各コントロールポイントは、3つのポイントで構成できます。円上の2つのポイントを表す2つのポイントと、2つのポイントの間に引かれた線の曲線を制御する1つのポイント。次に、カーブ上のコントロールポイント間のモーションをアニメートして、長方形のコントロールポイントになるように移動すると同時に、3番目のコントロールポイントのモーションをアニメートして、エッジをカーブから直線に変更します。

于 2012-04-20T09:47:11.397 に答える