橋本 Hashimoto   Baku

橋本 Hashimoto   Baku

興味のあるパス弄り (メモ)

このページは個人的なメモ書きです。何かあればご連絡ください。

PPW Curves

1 - 2 - 3
    2 - 3 - 4
        3 - 4 - 5

みたいに Quadratic curve を書いて、その重なりをblending functionで補間するスプライン
C^2連続が保証されている

これの改良版

これを実装したお絵描きツールが存在する by 折登 樹

Aquamarine Painter

異なる次数のベジェ曲線

  • N次数のベジェは必ず複数のセグメントからなる(N-1)次のベジェで近似できる
  • 逆に言えば、いくつもの変曲点からなる曲線も、十分に高次なベジェ曲線によって1つのセグメントとして表現できる
  • Higher Order Interpolation for Variable Font - Underware
  • Trigonometric Bezier curve(三角関数を用いたベジェ曲線)
    • N次のベジェ曲線を雰囲気で捉えると、N+1個の制御点を0t1の範囲で重み付けを変えながら混ぜ合わせていくことで得られる。このとき
      • 最初と最後の制御点を通る: b0(0)=0, wN1(1)=1
      • 制御点を逆順に入れ替えても同じ曲線が得られるwk(t)=wNk1(1t)
      • 重み付けの総和は常に1 k=0Nwk(t)=1
    • 通常のベジェ曲線の場合、この重み付け関数はバーンスタイン多項式によって定義されるが、それを三角関数に置き換えてやったのがTrigonometric Bézier。
      • 3次の場合
        • w0(t)=(1sinπ2t)2(1λsinπ2t)
        • w1(t)=sinπ2t(1sinπ2t)(2+λλsinπ2t)
        • w2(t)=cosπ2t(1cosπ2t)(2+μμcosπ2t)
        • w0(t)=(1cosπ2t)2(1μcosπ2t)
      • こんなグラフになります:
    • 恐らく、円弧や正弦波のような形を近似ではなくちゃんと再現出来るんじゃないかなと思います

緩和曲線

  • 「2点の位置、接線、曲率を指定したとき、いずれの曲率も下回らないG2連続な最短経路を描け」たら便利じゃないですか?(一意に定まるかどうかはさておき)
  • パスのオフセット
  • Gコードを逆にグラフィックとして読み込む
  • 『角を丸める』の一般化
  • 非線形なトランスフォームってどうやるの
    • ジグザグ、正弦波
  • 変な曲線
    • Dubin's Path: 向きと位置を与えられた2点間をある曲率以上の最小距離でつなぐ
    • Reeds-Shepp Curves: 「バックによる切り返し」を許したDubins Path
    • Arc Pen Tool
    • Plexus的なグラフ構造に、Wavefunction Collapseを適用して、面白げな「結び目」をつくる