太さの変わるBezier曲線の生成 - その18 [考え中 - 太さの変わるBezier曲線]
12月はずっと忙しくて、正月明けたと思ったらまたびっちり忙しくてなかなか進められない。つまらない。
前回、任意の微分可能な曲線を3次のBezier曲線で近似することを考えた。曲線間の「距離」を適当に導入して、それを最小にする、という考え方にした。具体的に実装してみないと効率や安定性の評価はできないけど、まあ、こんなもんだろ、ということで次、行こう。
近似対象の曲線との距離が必要な値に収束しなかった場合、どうするか、という問題。
近似曲線の分割
先の二つのパラメータαとβを変えても必要な距離以内に収束しなかった場合、曲線をふたつの部分に分割してそれぞれを別のBezier曲線で近似して精度を高めるようにしなければならない。
最適な分割法はなにか、と言う問題も解析的な手法は存在しない。従って厳密には繰り返し計算する必要がある。その基準も
- 被近似曲線の特徴的な点を探してそこで分割
- 分割点を移動させながら最適な位置を選ぶ
ひとつめは、例えば曲率が極端に大きくなってるところ(きゅっ、と折れ曲がっているところ)を探して分割するという方法である。
どっちにしても、試行錯誤的な方法になる。これも数学やアルゴリズムの問題というよりはプログラミングのレベルがからんでくるので、結局これもここまでで置いといて実装の段階でもう一度考え直す。忘れないようにしよう。
つぎからは、前にちょっとだけやった離散的な点列からなめらかな曲線を得るにはどうするか、という問題に帰る。
2009-01-11 22:04
nice!(0)
コメント(0)
トラックバック(0)
コメント 0