ノードのベジエ曲線を削除するアルゴリズムを作成する際に助けが必要です。3 次ベジエ曲線を使用すると、共通点 (P3=Q0) を持つ 2 つの曲線 (P0、P1、P2、P3 および Q0、Q1、Q2、Q3) があります。2 つの形状を繰り返す単一の曲線 (P0、R1、R2、Q3) を取得する必要があります。コントロールポイントR1、R2の座標を見つける方法は?
ありがとうございました!
一般的なケースでは、あなたが求めていることを行うことはできません。あなたは7自由度から4自由度まで下がることを求めていますが、同じ結果を維持します。低い自由度のシステムの代表的なパワーは、高い自由度のシステムに匹敵することはできません。それが可能なのは、より複雑な曲線がたまたまより単純な空間にある場合だけです。たとえば、2つのベジェ曲線が1つの親曲線を点で細分割した場合R0, R1, R2, R3
です。de Casteljauアルゴリズムを使用して、2つの新しい曲線を生成できます。これらは、同じ元の曲線上にP
あり、元の曲線に沿った距離Q
の点を共有します(ここで、はにあります)。t
t
[0,1]
P0 = R0
P1 = R0*(1-t) + R1*t
X = R1*(1-t) + R2*t
P2 = P1*(1-t) + X*t
Q3 = R3
Q2 = R2*(1-t) + R3*t
Q1 = X*(1-t) + Q2*t
Q0 = P3 = P2*(1-t) + Q1*t
その関係が元のポイントに当てはまらない場合は、近似値を作成する必要があります。しかし、関係が成り立つふりをして、方程式を逆にするだけで済むかもしれません。
R1 = (P1 - P0*(1-t))/t
R2 = (Q2 - Q3*t)/(1-t)
どこ
t = (Q0 - P2)/(Q1 - P2)
この最後の方程式が問題になります。これは、P2, Q0, Q1
同一直線上にない限り、正確に機能しないためです。 t
はスカラーですが、Q1-P2
通常はn次元の点です。したがって、次元ごとに個別に解いて平均を求めるか、もう少し洗練して二乗誤差を最小限に抑えることができます。