興味のあるパス弄り (メモ)
このページは個人的なメモ書きです。何かあればご連絡ください。
- 異なる次数のベジェ曲線
- N次数のベジェは必ず複数のセグメントからなる(N-1)次のベジェで近似できる
- 逆に言えば、いくつもの変曲点からなる曲線も、十分に高次なベジェ曲線によって1つのセグメントとして表現できる
- Higher Order Interpolation for Variable Font - Underware
- Trigonometric Bezier curve(三角関数を用いたベジェ曲線)
- N次のベジェ曲線を雰囲気で捉えると、N+1個の制御点を$$ 0 \leq t \leq1 $$の範囲で重み付けを変えながら混ぜ合わせていくことで得られる。このとき
- 最初と最後の制御点を通る: $$ b_0(0) = 0 $$, $$ w_(1) = 1 $$
- 制御点を逆順に入れ替えても同じ曲線が得られる$$ w_k(t) = w_(1 - t) $$
- 重み付けの総和は常に1 $$ \sum_^N w_k(t) = 1 $$
- 通常のベジェ曲線の場合、この重み付け関数はバーンスタイン多項式によって定義されるが、それを三角関数に置き換えてやったのがTrigonometric Bézier。
- 3次の場合
- $$ w_0(t) = (1 - sin\frac\pi2t)^2(1-\lambda sin\frac\pi2t) $$
- $$ w_1(t) = sin\frac\pi2t(1-sin\frac\pi2t)(2+\lambda-\lambda sin\frac\pi2t) $$
- $$ w_2(t) = cos\frac\pi2t(1-cos\frac\pi2t)(2+\mu-\mu cos\frac\pi2t) $$
- $$ w_0(t) = (1 - cos\frac\pi2t)^2(1-\mu cos\frac\pi2t) $$
- こんなグラフになります:

- 3次の場合
- 恐らく、円弧や正弦波のような形を近似ではなくちゃんと再現出来るんじゃないかなと思います
- N次のベジェ曲線を雰囲気で捉えると、N+1個の制御点を$$ 0 \leq t \leq1 $$の範囲で重み付けを変えながら混ぜ合わせていくことで得られる。このとき
緩和曲線
- 「2点の位置、接線、曲率を指定したとき、いずれの曲率も下回らないG2連続な最短経路を描け」たら便利じゃないですか?(一意に定まるかどうかはさておき)
- パスのオフセット
- ...ができるHoudiniアセットがあればいいですよね
- qLibのql Offsetはあまり賢くない
- An offset algorithm for polyline curve: これが最も確実そう。(始点, 円弧の角度) のタプルからなる円弧と直線に近似してオフセットする
- 円弧での近似はこちらが参考に: Approximating Bézier curves with circular arcs
- paperjs-offset: こちらは何のアルゴリズムかわからない
- https://pomax.github.io/bezierinfo/#offsetting: セグメントを分割してオフセットする方法
- ...ができるHoudiniアセットがあればいいですよね
- Gコードを逆にグラフィックとして読み込む
- 『角を丸める』の一般化
- ポリラインはかんたん: Houdiniアセット
- ベジェ曲線の角を丸めるってムズいですよね
- Illustratorはすごい
- 線の交点の角を丸める
- 非線形なトランスフォームってどうやるの
- ジグザグ、正弦波
- 変な曲線
- Dubin's Path: 向きと位置を与えられた2点間をある曲率以上の最小距離でつなぐ
- Reeds-Shepp Curves: 「バックによる切り返し」を許したDubins Path
- Arc Pen Tool
- Plexus的なグラフ構造に、Wavefunction Collapseを適用して、面白げな「結び目」をつくる