滑らかな曲線
最終更新:1998年2月1日(日) 川崎 有亮
川崎の考えた(もちろん一般には既知だけど)平面上の点の間を
滑らかに結ぶ曲線を描く方法のいくつかを記します。
この「滑らかな曲線」問題に関しては、高校時代から興味を
持っておりました。
今まで何気なく使っているイラストレータの「ベジェ曲線」とは
どういうアルゴリズムだったのか。それがようやく解明されました。
-
任意の2点AとBを、中心角90度の扇(円弧)の投影変換で結ぶ方法
(1997/07/13)
「楽譜のスラーを描くアルゴリズムは?」という問題に応じて考えた
この「滑らかな曲線」問題への最初の回答(案)。
まとめと改良版 も出されているが、どちらにしろ
計算量が多いかもしれない。
(自分では動作確認をしたことがない)
-
n個の点を通る曲線の一般形
(1998/01/31)
強引にでも、任意個の点全てを通る曲線を作ってしまう方法。
アルゴリズムとしては何個の点でも対応できるのだけど、
それが本当に実用に絶えうるのかは全く保証できません。
あまり点数が多いと、遅くなるし、点の結び方もかなり強引になって、
「確かに滑らかでないとはいえないけど、何か
違うんでないの?」系の妖しい曲線になる可能性も高い(笑)。
また、導いた手順ではなく公式と結果のみを載せてあるので、
たぶん分かり難いです。
ここでは紹介していないが、逆行列を求めるための
素晴らしいアルゴリズムを清水氏から教わりました。感謝。
-
任意の3点から定義できる滑らかな曲線
(1998/02/01)
点数を任意ではなく、3点に限って詳しく解説したもの。
また、3点のうち端の点は通るが、真ん中の点は(確実に
通るのではなく)そこにどれだけ近づくかのパラメタを設定できる。
前半の方程式は高校生でも理解できるように書いたつもり。
-
ベジェ曲線のできるまで
(1998/02/01)
上記3点の解き方を4点に応用したもの。
ベジェ曲線のマトリクスができあがった。
作業手順は3点の場合と同じなので、簡潔に記した。
ただし、本来はベジェ曲線のマトリクスは
もっと別の方法で取得できるはず。
正しい仕様は知りません。:-)
特に書籍等も読まずに(ばか)、ぐりぐりと式を作っていたら
思いもよらずベジェ(Bezeir)曲線がでてきてしまいました。
気が向いたら、B スプライン曲線も作ってしまいたくなるかもしれません(笑)。
感想、叱咤、激励
などなど、お待ちしております。
Copyright (C) 1998 Kawasaki Yuusuke <u-suke [at] kawa.net>
All rights reserved.