3次スプラインの最大曲率を計算する効率的な方法


6

2D 3次スプライン(ベジェ)があり、そのスプラインを離散化したポリゴンラインがあります。

滑らかな表現または離散ポリラインのいずれかを使用して、スプラインの最大曲率を計算する方法を実装するための効率的で簡単な方法はありますか?それはゲーム用であるため、正確である必要はありません。約10%のエラーは完全に許容されます。

別の言い回し:知りたいのですが、スプラインに沿って一定の速度で運転している車を運転する場合、ハンドルを切るためにハンドルを回さなければならない最大の度合いはどのくらいでしょうか?


1
あなたが役に立たなかったと知っているスプラインの導関数を取ることは?2つのステートメントは意味が異なります。スプラインタイプはありますか?ベジエのように?
邪悪な

確かに、これは3次ベジェスプラインです。私の知る限り、三次スプラインの最大曲率を決定する分析的な方法はありません。
user3049681

3次スプラインとは、3次係数があることを意味します。「ベジェ」と入力します。これは2Dケースですか?3Dケース?(車の場合はむしろ2D)。最初のステップは、あなたが持っているものと本当に必要なものをクリアすることです。
邪悪な

おかげで、それは2Dの場合です。3次ベジェスプラインがあり、ポリラインの形の離散化バージョンがあります。これら2つのことから、最大曲率をどうにかして大まかに決定したいと思います。
user3049681 2016年

1
1.「曲率」をどのように定義しますか?2. 2番目の質問(車について)は明確ではありません。車の速度が時間とともにどのように変化するかについては何も教えていないためです。車が等速で移動するように指定するつもりでしたか?もしそうなら、その質問には、二次微分の大きさを最大限にどの時点で尋ねると等価である、速度ように、あなたはパラメータを選択すると仮定するとは定数です()。[x(t)]2+[y(t)]2[x(t)]2+[y(t)]2=1
DW

回答:


2

ステップ1:スプライン上の点をパラメトリックに表現し、スプラインがという形式の点のセットになるようにします。ここで、はパラメーターです。ここで表し -座標(パラメータの関数としてと)表し、 -座標を。これは3次スプラインであるため、このパラメトリック式を提供する既知の係数を持つ3次多項式である関数を見つけることができます。(x(t),y(t))tx(t)xty(t)yx(t),y(t)

ステップ2:曲線のパラメトリック表現が与えられた場合、ウィキペディアの公式を使用て曲率を計算します。これにより、関数としての曲率の式、つまります。以来ことに注意してくださいと、立方多項式であるあなたは、解析のために明示的な表現を計算できるように、あなたが明示的、彼らの一次および二次導関数を計算することができる関数としての曲率のために、すなわち、。tκ(t)x(t)y(t)κ(t)t

手順3:を最大化するの値を見つけます。ここでは、関数を扱っていることに注意してください。つまり、1次元の場合です。したがって、勾配降下法、ニュートン法、または他のいくつかの方法のいずれかを使用して、数値的に最大値を見つけることができます。tκ(t)κ:RR

また、あなたは解析的に計算することができ派生、次に方程式解くのために。これにより、候補最大値のリストを識別する分析ソリューションが可能になる場合があります。エンドポイント(下限と上限)も確認してください。各候補でを評価し、値をできるだけ大きくするものを選択します。κ(t)κ(t)=0tκ(t)tκκ(t)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.