2016-11-11 3 views
0

これにアプローチする方法がわからない: ユニットの方向に対して長さ1のセグメントを「曲げる」必要があります。 曲げの強さは、セグメントの長さに対して1/yです。 セグメント上のすべてのポイントに対してトランスフォームを定義する必要があり、長さを保持する必要があります。 次は私が考えている: enter image description here方向を曲げることによってセグメントを変形する

+0

https://en.wikipedia.org/wiki/B%C3%多分、A9zier_curve)?彼ら[オンライン](http://math.hws.edu/eck/cs424/notes2013/canvas/bezier.html)を試してみてください。 – hidefromkgb

+1

方向ベクトルは曲げとどのように相関していますか?それは曲がったセグメントの最後に接する方向ですか? – BDL

+0

はい、まさにその垂直成分にも制限があります:y> = 0 – Teris

答えて

1

私は半径1の円の長さが1の円弧になるだろうされている、あなたはそれが一定の曲率kを持つなるようにセグメントを曲げるようにしたいと仮定/ k。点までのセグメントマップのその後の点(0、T):Kの値が小さい(曲率が小さいとセグメントがほぼ直線状である場合には)、ゼロによる除算を防止するために

(1 - cos(kt))/k , sin(kt)/k 

事故は、あなたが(K = 0の近くに上記のテイラー展開で)次の式でそれをマップ:

k t^2/2  ,  t - k^2 t^3/6 

EDIT:あなたのコメントに続いて

をあなたの方向ベクトルがあると仮定すると( x、y)とすると、corrの値アークの終了時にその接線ベクトルを与えるesponding曲率(T = 1)で与えられる。([ベジェ曲線]

k = atan2(x, y) 
+0

thx、それを試してみてください。これはまさに私が心に留めていたものですが、細部を理解することはできませんでした。 – Teris

関連する問題