キャットマル・ロムスプラインは、 カーディナルスプライン の特殊なケースです。これは、制御点の間隔が均一であることを前提としています。 p k {\displaystyle {\boldsymbol {p}}_{k}} 選択された接線については、
m k = p k + 1 − p k − 1 2 {\displaystyle {\boldsymbol {m}}_{k}={\frac {{\boldsymbol {p}}_{k+1}-{\boldsymbol {p}}_{k-1}}{2}}} 3次エルミートスプラインの定義式 において:
p ( t ) = ( 2 t 3 − 3 t 2 + 1 ) p k + ( t 3 − 2 t 2 + t ) m k + ( − 2 t 3 + 3 t 2 ) p k + 1 + ( t 3 − t 2 ) m k + 1 {\displaystyle {\boldsymbol {p}}(t)=\left(2t^{3}-3t^{2}+1\right){\boldsymbol {p}}_{k}+\left(t^{3}-2t^{2}+t\right){\boldsymbol {m}}_{k}+\left(-2t^{3}+3t^{2}\right){\boldsymbol {p}}_{k+1}+\left(t^{3}-t^{2}\right){\boldsymbol {m}}_{k+1}} キャットマル・ロム・スプラインの以下の式が得られる。
p ( t ) = 1 2 [ t 3 t 2 t 1 ] [ − 1 3 − 3 1 2 − 5 4 − 1 − 1 0 1 0 0 2 0 0 ] [ p k − 1 p k p k + 1 p k + 2 ] {\displaystyle {\boldsymbol {p}}(t)={\frac {1}{2}}{\begin{bmatrix}t^{3}&t^{2}&t&1\end{bmatrix}}{\begin{bmatrix}-1&3&-3&1\\2&-5&4&-1\\-1&0&1&0\\0&2&0&0\end{bmatrix}}{\begin{bmatrix}{\boldsymbol {p}}_{k-1}\\{\boldsymbol {p}}_{k}\\{\boldsymbol {p}}_{k+1}\\{\boldsymbol {p}}_{k+2}\end{bmatrix}}} この曲線は、エドウィン・キャットマル とラファエル・ロム にちなんで名付けられました。この手法の主な利点は、元の点群に沿った点がスプライン曲線の制御点も構成することです。[ 1 ]
Catmull–Romスプラインの例[ 2 ] 曲線の両端にさらに 2 つの点が必要です。均一な Catmull–Rom 実装では、ループや自己交差が発生する可能性があります。弦状および求心性の Catmull–Rom 実装[ 3 ] はこの問題を解決しますが、少し異なる計算を使用します。[ 4 ] コンピュータ グラフィックスでは、Catmull–Rom スプラインは、キー モーメント間の滑らかな動きを作成する一般的な方法です。[ 5 ] 例えば、一連のカメラ キー フレームを流動的なカメラ パスに変換するためによく使用されます。[ 6 ]
不動産
Bスプラインとの比較 キャットマル・ロム・スプライン曲線は定義点を通る補間曲線であるのに対し、Bスプライン曲線は制御点を通らない近似曲線である。[ 8 ]
左から順に、ブレンド関数の例、シフト前の基底関数、および3次一様Bスプライン曲線を示します。
連続 キャットマル・ロム・スプライン曲線は、その定義および以下の条件によりC1連続であるが、C2連続ではない。
F k ′ ( 1 ) = 1 2 [ 0 − 1 0 1 ] [ p k − 1 p k p k + 1 p k + 2 ] = F k + 1 ′ ( 0 ) = 1 2 [ − 1 0 1 0 ] [ p k p k + 1 p k + 2 p k + 3 ] {\displaystyle {\mathbf {F} }_{k}'(1)={\frac {1}{2}}{\begin{bmatrix}0&-1&0&1\end{bmatrix}}{\begin{bmatrix}{\mathbf {p} }_{k-1}\\{\mathbf {p} }_{k}\\{\mathbf {p} }_{k+1}\\{\mathbf {p} }_{k+2}\end{bmatrix}}={\mathbf {F} }_{k+1}'(0)={\frac {1}{2}}{\begin{bmatrix}-1&0&1&0\end{bmatrix}}{\begin{bmatrix}{\mathbf {p} }_{k}\\{\mathbf {p} }_{k+1}\\{\mathbf {p} }_{k+2}\\{\mathbf {p} }_{k+3}\end{bmatrix}}} F k 」 ( 1 ) = [ − 1 4 − 5 2 ] [ p k − 1 p k p k + 1 p k + 2 ] ≠ F k + 1 」 ( 0 ) = [ 2 − 5 4 − 1 ] [ p k p k + 1 p k + 2 p k + 3 ] {\displaystyle {\mathbf {F} }_{k}''(1)={\begin{bmatrix}-1&4&-5&2\end{bmatrix}}{\begin{bmatrix}{\mathbf {p} }_{k-1}\\{\mathbf {p} }_{k}\\{\mathbf {p} }_{k+1}\\{\mathbf {p} }_{k+2}\end{bmatrix}}\neq {\mathbf {F} }_{k+1}''(0)={\begin{bmatrix}2&-5&4&-1\end{bmatrix}}{\begin{bmatrix}{\mathbf {p} }_{k}\\{\mathbf {p} }_{k+1}\\{\mathbf {p} }_{k+2}\\{\mathbf {p} }_{k+3}\end{bmatrix}}}
自己交差 曲線の中央部で定義点間の間隔の差が大きい場合、尖点や自己交差が発生する可能性がある。 [ 注2 ]
以下は自己交差の例です。
ベジェ曲線への変換変換されたベジェ曲線の例(赤色:ベジェ曲線の制御点) 3次ベジェ曲線 の行列形式は次のようになります。
P ( t ) = [ t 3 t 2 t 1 ] [ − 1 3 − 3 1 3 − 6 3 0 − 3 3 0 0 1 0 0 0 ] [ p b z 0 p b z 1 p b z 2 p b z 3 ] {\displaystyle \mathbf {P} (t)={\begin{bmatrix}t^{3}&t^{2}&t&1\end{bmatrix}}{\begin{bmatrix}-1&3&-3&1\\3&-6&3&0\\-3&3&0&0\\1&0&0&0\end{bmatrix}}{\begin{bmatrix}{\mathbf {p_{bz}} }_{0}\\{\mathbf {p_{bz}} }_{1}\\{\mathbf {p_{bz}} }_{2}\\{\mathbf {p_{bz}} }_{3}\end{bmatrix}}} キャットマル・ロム・スプライン曲線に相当する3次ベジェ曲線の制御点は次のとおりです。
[ p b z 0 p b z 1 p b z 2 p b z 3 ] = [ − 1 3 − 3 1 3 − 6 3 0 − 3 3 0 0 1 0 0 0 ] − 1 1 2 [ − 1 3 − 3 1 2 − 5 4 − 1 − 1 0 1 0 0 2 0 0 ] [ p k − 1 p k p k + 1 p k + 2 ] = 1 6 [ 0 6 0 0 − 1 6 1 0 0 1 6 − 1 0 0 6 0 ] [ p k − 1 p k p k + 1 p k + 2 ] {\displaystyle {\begin{bmatrix}{\mathbf {p_{bz}} }_{0}\\{\mathbf {p_{bz}} }_{1}\\{\mathbf {p_{bz}} }_{2}\\{\mathbf {p_{bz}} }_{3}\end{bmatrix}}={\begin{bmatrix}-1&3&-3&1\\3&-6&3&0\\-3&3&0&0\\1&0&0&0\end{bmatrix}}^{-1}{\frac {1}{2}}{\begin{bmatrix}-1&3&-3&1\\2&-5&4&-1\\-1&0&1&0\\0&2&0&0\end{bmatrix}}{\begin{bmatrix}{\mathbf {p} }_{k-1}\\{\mathbf {p} }_{k}\\{\mathbf {p} }_{k+1}\\{\mathbf {p} }_{k+2}\end{bmatrix}}={\frac {1}{6}}{\begin{bmatrix}0&6&0&0\\-1&6&1&0\\0&1&6&-1\\0&0&6&0\end{bmatrix}}{\begin{bmatrix}\mathbf {p} _{k-1}\\\mathbf {p} _{k}\\\mathbf {p} _{k+1}\\\mathbf {p} _{k+2}\end{bmatrix}}} 2つのCatmull–Romスプラインのデカルト積をとることで、点のグリッドを補間する2変数曲面を得ることができる。[ 9 ]
これは、次の式で表される双三次パッチです。
F ( t 、 u ) = [ t 3 t 2 t 1 ] M [ p 11 p 12 p 13 p 14 p 21 p 22 p 23 p 24 p 31 p 32 p 33 p 34 p 41 p 42 p 43 p 44 ] M T [ u 3 u 2 u 1 ] {\displaystyle \mathbf {F} (t,u)={\begin{bmatrix}t^{3}&t^{2}&t&1\end{bmatrix}}\mathbf {M} {\begin{bmatrix}{\mathbf {p} }_{11}&{\mathbf {p} }_{12}&{\mathbf {p} }_{13}&{\mathbf {p} }_{14}\\{\mathbf {p} }_{21}&{\mathbf {p} }_{22}&{\mathbf {p} }_{23}&{\mathbf {p} }_{24}\\{\mathbf {p} }_{31}&{\mathbf {p} }_{32}&{\mathbf {p} }_{33}&{\mathbf {p} }_{34}\\{\mathbf {p} }_{41}&{\mathbf {p} }_{42}&{\mathbf {p} }_{43}&{\mathbf {p} }_{44}\end{bmatrix}}\mathbf {M} ^{T}{\begin{bmatrix}u^{3}\\u^{2}\\u\\1\end{bmatrix}}} どこ
M = 1 2 [ − 1 3 − 3 1 2 − 5 4 − 1 − 1 0 1 0 0 2 0 0 ] {\displaystyle \mathbf {M} ={\frac {1}{2}}{\begin{bmatrix}-1&3&-3&1\\2&-5&4&-1\\-1&0&1&0\\0&2&0&0\end{bmatrix}}} このパッチは中央の4点を補間する。隣接するパッチは1階微分において連続性を持つ。
参考文献 1 2 Catmull, Edwin; Rom, Raphael (1974)、「A Class of Local Interpolating Splines」 、Computer Aided Geometric Design 、Elsevier、pp. 317–326 、doi : 10.1016/b978-0-12-079050-0.50020-5、ISBN 978-0-12-079050-0 2026年1月6日 取得 ↑ キャットマル、ロム(1974)、325ページ、図5 ↑ N. Dyn、MS Floater、K. Hormann。反復弦と求心力パラメータ化に基づく4点曲線分割。Computer Aided Geometric Design、26(3):279–286、2009年。 ↑ PJ Barry および RN Goldman。「Catmull-Rom スプラインの一種に対する再帰的評価アルゴリズム」。SIGGRAPH Computer Graphics、22(4):199–204、1988 年。 ↑ Gao, Tianmu; Zou, Danping; Chen, Chao Ping; Wu, Xiaojun; Hu, Haiyang (2025-02-28). "マルチセンサーSLAMとCatmull–Romスプラインに基づくオンラインレーンマッピング" . Measurement Science and Technology . 36 (2): 026318. doi : 10.1088/1361-6501/ada8c8 . ISSN 0957-0233 . ↑ Piotrowski, Lisa; Motejat, Michael; Rössl, Christian; Theisel, Holger (2024). "OptFlowCam: 極端なスケール変動のあるシーンにおけるカメラパスのためのカメラ空間における 3D-画像フローベースのメトリック" . Computer Graphics Forum . 43 (2). doi : 10.1111/cgf.15056 . ISSN 0167-7055 . ↑ ドキュメントを読む - 均一なキャットマル-ロムスプライン ↑ キャットマル、ロム (1974)、319ページ ↑ キャットマル、ロム(1974)、322-323頁 ↑ Christopher Twigg (2003). "Catmull–Rom スプライン" (PDF) . Carnegie Mellon Computer Graphics . 2025-06-10 に取得. ↑ Kochanek, Doris HU; Bartels, Richard H. (1984). "Interpolating splines with local tension, continuity, and bias control" . ACM SIGGRAPH Computer Graphics . 18 (3): 36–37 . doi : 10.1145/800031.808575 . ISBN 0-89791-138-5 。
参考文献 デ・ブール、 カール(1978)。スプラインの実践ガイド 。ISBN 0-387-90356-9 。Gordon, William J.; Riesenfeld, Richard F. (1974)、「Bスプライン曲線と曲面」、Barnhill, Robert E.; Riesenfeld, Richard F. (編)、『コンピュータ支援幾何設計 - 1974年3月18-21日にユタ州ソルトレイクシティのユタ大学で開催された会議の議事録』 、ニューヨーク:Academic Press、pp. 95–126 、ISBN 0-12-079050-5