二次ベジエ曲線を補間するためにAS2でコードを取得したいと思います。ノードは互いから一定距離離れていることを意味する。基本的には、3ptで定義される非双曲線二次ベジェ曲線に沿って一定速度でボールをアニメーション化することです。 ありがとう!二次ベジエ補間
二次ベジエ補間
答えて
ベジェ曲線の計算は実際には非常に簡単なので、これを手助けしてActionScriptに変換することができます。
2D二次ベジエ曲線は、3つの(x,y)
座標で定義されます。私はこれらをP0 = (x0,y0)
,P1 = (x1,y1)
およびP2 = (x2,y2)
と呼んでいます。さらに、パラメータ値t
は、0
から1
の範囲で、曲線に沿った任意の位置を示すために使用されます。すべてx
,y
およびt
は実数(浮動小数点)です。
二次ベジェ曲線の式は次のとおりです。
for i = 0 to step_count
t = i/step_count
u = 1 - t
P = P0*u*u + P1*2*u*t + P2*t*t
draw_ball_at_position(P)
これは、あなたがすでに定義されていることを前提としています
P(t) = P0*(1-t)^2 + P1*2*(1-t)*t + P2*t^2
ので、擬似コードを使用して、我々がスムーズにそうようなベジェ曲線をトレースすることができます上記のように点P0
,P1
およびP2
となる。コントロールポイントを均等に配置すると、カーブに沿ってすばらしいステップが得られるはずです。 step_countを、あなたが見たいカーブに沿ったステップの数に定義してください。
式ははるかに効率的に数学的に実行できることに注意してください。
P(t) = P0*(1-t)^2 + P1*2*(1-t)*t + P2*t^2
と
P = P0*u*u + P1*2*u*t + P2*t*t
両方を簡略化することができるTの乗算を保持します。例えば
:
C = A*t + B(1-t) = A*t + B - B*t = t*(A-B) + B
は=あなたは1回の乗算=ダブルパフォーマンスを救いました。
あなたは数倍を保存することができるかもしれませんが、バーンスタインの基礎は本質的に数値的に安定しています。したがって、精度が問題となる場合は、多項式を再構成しないでください。確かに、これはボールのアニメーション化にはあまり重要ではありませんが、これはCADパッケージでは非常に重要です。 – Naaff
Naaffによって提案された解決策は、それがP(t) = P0*(1-t)^2 + P1*2*(1-t)*t + P2*t^2
で、あなたに正しい「形状」を取得しますが、[0:1]
間隔で等間隔t
を選択すると、等間隔P(t)
を生成しません。言い換えれば、速度は一定ではありません(これを見るためには、t
に関して前の式を区別することができます)。
通常、一定速度でパラメトリック曲線をトラバースする一般的な方法は、弧長で再パラメータ化することです。これは、P
をP(s)
と表すことを意味し、s
は、曲線に沿って横切る長さである。明らかに、s
はゼロから曲線の全長まで変化する。二次ベジェ曲線の場合、弧長の閉形式解がt
の関数としてありますが、それは少し複雑です。計算上、好きな方法を使って数値的に統合するほうが速いことがよくあります。しかし、その考え方は、t(s)
という逆の関係を計算し、P
をP(t(s))
と表現することに注意してください。次に、等間隔のs
を選択すると、均等なスペースP
が生成されます。
- 1. ipadアプリケーションの二次ベジエ曲線
- 2. テンプレート内の角二重補間
- 3. Modelicaの3次スプライン補間
- 4. Swiftの双一次補間
- 5. 補間3次元空間での[フィールド]
- 6. openCVを使った双三次補間
- 7. Cの配列の2次元補間
- 8. 多次元データストレージおよび補間
- 9. 2次元線形補間でR
- 10. モデル内の双三次補間
- 11. 二次的な時間で解く?
- 12. のXPath:二次の時間の増加
- 13. 補間後のヒラルピ座標誤差:二等分線の出現
- 14. 3次元空間での1次元曲線の補間/適合の取得 -
- 15. MATLAB。補間法で二次多項式を得るにはどうすればいいですか?
- 16. 立方体射影補間補間Python
- 17. Rプログラミングのボラティリティサーフェスグラフ上の補間補間
- 18. ベジエ曲線、ループ、ブリンスタイル
- 19. WPFのベジエ曲線
- 20. マウスイベントのベジエ曲線
- 21. 二次元
- 22. 次の二つ
- 23. アキマ補間アルゴリズム
- 24. OpenGL GLSL補間
- 25. ラグランジュ補間
- 26. Char.js補間リニア
- 27. PSR-3補間
- 28. Pythonの補間
- 29. Vueの補間
- 30. キュービズムグラフの補間
私は既にいくつかの複雑な数学的なものを見てきましたが、それは私がas2で行う方法がわからない積分を含んでいます –