2012-01-05 9 views
2

厳格な事実を横断:ベジェ曲線(パス) - より少ない一定の速度Tを通じて

  • は、残念ながら、私は上の私の指でそれを描くことにより、ベジェパスを生成
  • 数学の第一人者ではありませんよ画面
  • 私はこのパスをたどるオブジェクト
  • エンジンは、このようにオブジェクトに(フロートfDeltaティックを呼び出すときに、私はこのパスを横切る有する:

IF(m_fBezierTime < 1.0){

m_fBezierTime + = 0.1F * fDelta

m_vPosition = m_Bezier.CalculatePosition(m_fBezierTime)。

}

  • アプローチのこの種は、互いに近接しているものよりも距離を有する点の間の「巨大」加速度を与えます。

  • が、私はこれはベジェ

の正常な動作です聞いたことが今の質問:

  • は、どのように私は、少なくとも「閉じる」または「〜」定数にこの速度を行うことができますか?

ありがとうございました。

答えて

2

シンプルで速い解決策:あなたが今やっているように、ベジェ曲線(たとえば曲線あたり10点)上に定期的に分布した点の束を取得し、それらの点間のユークリッド距離を測定します(sqrt(x_1 - x_2 )²+(y_1 - y_2)²...))。これは、ほぼ一定の速度でトラバースするよりも、使用できるフルカーブの長さに適した方法です。

http://steve.hollasch.net/cgindex/curves/cbezarclen.html ここではもっと面白いことが起こっていますが、それは過剰です。

+0

パーフェクト、魅力のように動作します。 – PeeS

関連する問題