2

このウィキペディアの記事で使用されている式を使用して、ベジエ曲線の実装を最適化しようとしています。現在、実装が非常に遅いですが、少なくとも正確である必要があります。以下を使用します。

p0 = (0, 256) //Violet dot
p1 = (70, 223) //Green dot
p2 = (24, 472) //Blue dot
p3 = (255, 256) //Yellow dot
t = 0.5

以下の現在のコードで描画すると、T = 0.5 の点は (67.125, 324.625) です。

ここに画像の説明を入力

X 軸の数式を試して、次のような計算を行います。

var x = Math.Pow(1 - t, 3) * p0.X + 3 * Math.Pow(1 - t, 2) * t * p1.X + 3 
        * (1 - t) * Math.Pow(t, 2) * p2.X + Math.Pow(t, 3) + p3.X;

しかし、これは私に 290.375 の X 座標を与えますが、これは明らかに正しくありません。ここで何が欠けていますか?

4

1 に答える 1

2

当たり前!今自分の質問を見ると、明らかなことがわかります。最後のビット Math.Pow(t, 3) + p3.X; Math.Pow(t, 3) * p3.X; である必要があります。今では動作します。

于 2012-08-25T23:04:38.630 に答える