質問
さて、基本的に私がやろうとしていることは、X位置が与えられたときに3次曲線/ベジエ曲線/スプラインのY位置を計算することです.
Stack Overflow と Google であらゆる場所を検索したところ、実際に機能するものはすべて見つかりました。
カーブポイント
x1 = 50d;
y1 = 400d / 2d + 100d;
x2 = 400d;
y2 = 400d / 2d + 100d;
x3 = 600d - 400d;
y3 = 400d / 2d - 100d;
x4 = 600d - 50d;
y4 = 400d / 2d - 100d;
「600 - 400」を計算し、「200」とだけ書かない理由は、私のコードでは「600」が実際には 3 次曲線がレンダリングされるウィンドウの幅だからです。 -私のコードでは400 "。
したがって、次のコードは、T が指定されたときに 3 次曲線の X と Y を計算できます。
t = 0.5d;
cx = 3d * (x2 - x1);
cy = 3d * (y2 - y1);
bx = 3d * (x3 - x2) - cx;
by = 3d * (y3 - y2) - cy;
ax = x4 - x1 - cx - bx;
ay = y4 - y1 - cy - by;
point_x = ax * (t * t * t) + bx * (t * t) + cx * t + x1;
point_y = ay * (t * t * t) + by * (t * t) + cy * t + y1;
繰り返しますが、私が計算しようとしているのは、X 位置がわかっている場合の曲線の Y 位置です。しかし、私が計算できるのは、T が指定されたときの曲線上の X と Y の位置だけです。
これは私の最初の投稿なので、何かが 100% 正しく書かれていない場合は、申し訳ありません!