5

ベジェ曲線と線分の交差テストを実装しようとしています。私の検索結果に最も近いのは、ベジエ曲線 (簡単にするために制御点を 3 つに制限します) を取得し、その曲線を生成する数学関数を見つけて、origo に配置することです。次に、線分の関数を別の関数として使用し、それらを等しくして方程式を解きます。

多くのソースが上記の解決策を述べています (Ive がそれらを誤解していない限り)。私の問題は、ベジエ曲線を生成する数学関数を計算する方法が見つからないことです。

ああ、交点を見つけることで私が完全に軌道から外れているかどうかを指摘してください。

4

1 に答える 1

13

ベジェ曲線はパラメトリック関数です。二次ベジェ曲線(つまり、3つの制御点)は次のように表すことができます。F(t)= A(1-t)^ 2 + 2B(1-t)t + Ct ^ 2ここで、ABCは点であり、ゼロから1になります。

これにより、2つの方程式が得られます。

x = a(1-t)^ 2 + 2b(1-t)t + ct ^ 2

y = d(1-t)^ 2 + 2e(1-t)t + ft ^ 2

たとえば、それに直線方程式(y = kx + m)を追加すると、3つの方程式と3つの未知数(xyt)になります。

于 2009-12-05T22:34:34.560 に答える