2016/05/23(月) [n年前の日記]
#1 [prog] クロソイド曲線について調べていたり
現実世界で道路を設計する際、クロソイド曲線なるものを使うと知り、調べているところ。
例えば、道路でカーブを作る場合、
そこで、角度が徐々についていくクロソイド曲線で、直線と円弧の間を繋ぐらしい。
ということで、たとえ一本道とは言え、道路を自動生成しようとするなら、そのあたりも入れといたほうがいいのかな、と思って解説ページを眺めているのだけど。直線と円弧をどこで繋ぐのか、そこからしてよく分からず。
それにしても、徐々に角度をつけていく云々って、なんだか多関節処理と似たところがありそうな。親、子、孫、と、距離と角度を元にして位置を決めていく際に、角度を徐々に増加していけば似たような形になりそうな気もするのだけど。
そういや、以前作った、一本道を延々走るソレも、徐々に角度がついていって、中間を過ぎると角度が徐々に元に戻っていくように、easing の式を使っていたわけで。リアルな道路の形ではないだろうけど、それっぽく見えればOKということなら、その程度でも良かったりはしないのだろうか。
その後もググっていたら、鉄道の線路の場合は三次曲線で近似することもある、という話を見かけた。なるほど、すると自分が書いたソレは、たまたま偶然、道路は再現してないけど線路のカーブは再現していた、ということになるのかな…。
例えば、道路でカーブを作る場合、
直線 → 円弧 → 直線という設計にしてしまうと、車が曲がり切れない、大変危ない道路ができてしまうのだそうで。車のハンドルは、いきなり瞬間的に、まるでデジタル的に、任意の角度へ変化させることはできないから、車が円弧内に入ってからハンドルを切っても、間に合わなくてカーブの外に飛び出してしまう。
そこで、角度が徐々についていくクロソイド曲線で、直線と円弧の間を繋ぐらしい。
直線 → クロソイド曲線 → 円弧 → クロソイド曲線 → 直線
ということで、たとえ一本道とは言え、道路を自動生成しようとするなら、そのあたりも入れといたほうがいいのかな、と思って解説ページを眺めているのだけど。直線と円弧をどこで繋ぐのか、そこからしてよく分からず。
それにしても、徐々に角度をつけていく云々って、なんだか多関節処理と似たところがありそうな。親、子、孫、と、距離と角度を元にして位置を決めていく際に、角度を徐々に増加していけば似たような形になりそうな気もするのだけど。
そういや、以前作った、一本道を延々走るソレも、徐々に角度がついていって、中間を過ぎると角度が徐々に元に戻っていくように、easing の式を使っていたわけで。リアルな道路の形ではないだろうけど、それっぽく見えればOKということなら、その程度でも良かったりはしないのだろうか。
その後もググっていたら、鉄道の線路の場合は三次曲線で近似することもある、という話を見かけた。なるほど、すると自分が書いたソレは、たまたま偶然、道路は再現してないけど線路のカーブは再現していた、ということになるのかな…。
[ ツッコむ ]
以上です。