0
私は、曲線に沿って円弧長のパラメータ化された(すなわち等間隔の)点が必要です。私はde Casteljauとpythagorasを使ってループすることができます。これは、カーブが静的である場合に機能しますが、カーブがダイナミックであれば動きが鈍いです。また、私は3次多項式を試して、予想通りCasteljauと同じ点を与えました。ブルートフォース/ルックアップテーブルなしでベジェのアルプポイントを見つける
これらの関数をループ/配列なしで効率的にalp-pointsを得る方法はありますか?近似はうまくいきます。一般的に
float lerp(float A, float B, float C) {
return A*(1-C)+B*C;
}
float bezierPoint_lerp(float A, float B, float C, float D, float T) {
return lerp(lerp(lerp(A, B, T), lerp(B, C, T), T),
lerp(lerp(B, C, T), lerp(C, D, T), T), T);
}
float bezierPoint_pow(float A, float B, float C, float D, float T) {
return A * pow(1-T,3) +
B * 3 * pow(1-T,2) * T +
C * 3 * (1-T) * pow(T,2) +
D * pow(T,3);
}
「alp points」とは何ですか? – MBo
円弧長さパラメータ化/等距離点 – PrincePolka