2011-11-21 12 views
9

私は、最初と最後の点が与えられた立方体ベジェ曲線(すなわちP0(0,0)とP3(1,1))を持っています。 キュービックベジェ(0.25,0.1,0.25,1.0)(X1、Y1、X2、Y2、これらの値もそれぞれ0または1より小さくしてはいけません)
Now与えられたXのY座標を得るために私は何をしなければならないでしょう? (私は、特定の状況下では複数の値があるかもしれないと知っていますが、ちょうどそれらを脇に置きます。私はここでロケット科学をやっていません、Yを1秒間に何度もやり取りしてトランジションを行うことができます)キュービックベジェ曲線 - 与えられたXに対してYを得る

私はこれを掘り出すことができました:y coordinate for a given x cubic bezierしかし、私はxTargetが何を表すのか分かりません。
ああ、宿題はまったくありません。私は、インターネット上の3次ベジェ曲線に関する分かりにくいことはありません。あなたがx値を与えている場合は

+0

質問もここに表示されます:http://stackoverflow.com/questions/7348009/y-coordinate-for-a-given-x-cubic-bezier 最初になっていた情報はありませんが、詳しい情報が含まれている可能性があります。 – mredig

答えて

16

あなたが[0,1]のあらゆるtため

P0 = (X0,Y0) 
P1 = (X1,Y1) 
P2 = (X2,Y2) 
P3 = (X3,Y3) 

次にお持ちの場合は、座標

X(t) = (1-t)^3 * X0 + 3*(1-t)^2 * t * X1 + 3*(1-t) * t^2 * X2 + t^3 * X3 
Y(t) = (1-t)^3 * Y0 + 3*(1-t)^2 * t * Y1 + 3*(1-t) * t^2 * Y2 + t^3 * Y3 

によって与えられた曲線上の点を取得し、その後、あなたがする必要がありますどのようなtの値が[0,1]に該当するかを調べるには、tの値を使用してyの座標を見つけます。上記X(t)式において

は、X0でのx値とプラグ、X1X2X3に左側に設定します。これにより、変数tの3次多項式が残ります。これをtについて解いてから、tの値をY(t)の方程式に入れてyの座標にします。

cubic polynomialを解決することは難しいことですが、3次多項式を解く方法の1つを慎重に使用して行うことができます。

+0

友人の助けを借りて、私はこれをちょっと理解することができました。私は、私が必要なものを達成するために別のフォーラムで得た2つの関数を書き直しました:http://cl.ly/C1Nl(C#もきれいではないかもしれません)助けてくれてありがとう! :) –

+0

この式では何ですか? –

+0

@ JhansiKiRaniは、0と1の間であれば、どんなものでも構いません。 –

関連する問題