Skip to content

*)TCBスプラインの実践的パラメータ設定

最終更新日時: 2025年08月25日 12:57

  • nothing

本セクションではTCBスプラインのパラメータが曲線の形状に与える数学的影響を解説する。2次元の具体例から3次元への拡張の数学的基礎を示し、各パラメータの設定指針を提供する。

TCBスプラインでは、各制御点にTension(t)、Continuity(c)、Bias(b)の3つのパラメータを設定する。これらは接線ベクトルの計算に以下のように影響する:

Di,i+1=(1t)(1+b)(1+c)2(PiPi1)+(1t)(1b)(1c)2(Pi+1Pi)Di,i+1+=(1t)(1+b)(1c)2(PiPi1)+(1t)(1b)(1+c)2(Pi+1Pi)\begin{align*} D_{i,i+1}^- &= \frac{(1-t)(1+b)(1+c)}{2}(P_i - P_{i-1}) + \frac{(1-t)(1-b)(1-c)}{2}(P_{i+1} - P_i) \\ D_{i,i+1}^+ &= \frac{(1-t)(1+b)(1-c)}{2}(P_i - P_{i-1}) + \frac{(1-t)(1-b)(1+c)}{2}(P_{i+1} - P_i) \end{align*}

ここで:

  • PiP_{i}は各座標で、座標の次元はユーザが定義
  • Di,i+1D_{i,i+1}^- は点 PiP_i での出力接線
  • Di,i+1+D_{i,i+1}^+ は点 Pi+1P_{i+1} での入力接線
  • t, c, b はそれぞれ Tension, Continuity, Bias
  1. Tension (t)

    • 数学的効果:係数 (1t)(1-t) によって接線の大きさをスケーリング
      • t = -1: 接線ベクトルが2倍になる → 曲線が曲がりやすい(緩やか)
      • t = 0: 標準的な大きさの接線ベクトル
      • t = 1: 接線ベクトルが0になる → 曲線が直線的に
  2. Continuity (c)

    • 数学的効果:入力接線と出力接線の対称性を制御
      • c = -1: (1+c)=0(1+c) = 0, (1c)=2(1-c) = 2 → 接線の非対称性が最大
      • c = 0: (1+c)=(1c)=1(1+c) = (1-c) = 1 → 接線が対称的
      • c = 1: (1+c)=2(1+c) = 2, (1c)=0(1-c) = 0 → 逆方向の非対称性
  3. Bias (b)

    • 数学的効果:接線計算で使われる前後の点の影響度を調整
      • b = -1: 次の点への影響が強まる
      • b = 0: 前後の点が等しく影響
      • b = 1: 前の点からの影響が強まる

具体的に、下記の2次元の点を用いて線を描く

P0=(0,0)P1=(10,25)P2=(20,14)P3=(30,50)P4=(40,0)\begin{align*} P_0 &= (0, 0)\\ P_1 &= (10, 25)\\ P_2 &= (20, -14)\\ P_3 &= (30, 50)\\ P_4 &= (40, 0)\\ \end{align*}

として、PnP_{n}Pn+1P_{n+1}の間のセグメントをPn,n+1P_{n,n+1}と示すことにする

まず、各セグメントを全てのパラメータを0にして計算する

  • パラメータ
    • t=0,c=0,b=0t = 0, c = 0, b = 0
  • セグメントP0,1P_{0,1},P1,2P_{1,2},P2,3P_{2,3},P0,1P_{0,1},

注:Continuityとbiasが0の場合、入力接線と出力接線は同じになる。

以上より、Dを再掲すると下記のようになる。

D0,1=(1)(1)(1)2(P0P0)+(1)(1)(1)2(P1P0)=12(10,25)=(5,12.5)D1,2=12(P1P0)+12(P2P1)=12((10,25)(0,0))+12((20,14)(10,25))=12(10,25)+12(10,39)=(10,7)D2,3=12(P2P1)+12(P3P2)=12((20,14)(10,25))+12((30,50)(20,14))=12(10,39)+12(10,64)=(10,12.5)D3,4=12(P3P2)+12(P4P3)=12((30,50)(20,14))+12((40,0)(30,50))=12(10,64)+12(10,50)=(10,7)\begin{align*} D_{0,1}^- &= \frac{(1)(1)(1)}{2}(P_0 - P_0) + \frac{(1)(1)(1)}{2}(P_1 - P_0) = \frac{1}{2}(10, 25) = (5, 12.5) \\ D_{1,2}^- &= \frac{1}{2}(P_1 - P_0) + \frac{1}{2}(P_2 - P_1) = \frac{1}{2}((10, 25) - (0, 0)) + \frac{1}{2}((20, -14) - (10, 25)) \\ &= \frac{1}{2}(10, 25) + \frac{1}{2}(10, -39) = (10, -7) \\ D_{2,3}^- &= \frac{1}{2}(P_2 - P_1) + \frac{1}{2}(P_3 - P_2) = \frac{1}{2}((20, -14) - (10, 25)) + \frac{1}{2}((30, 50) - (20, -14)) \\ &= \frac{1}{2}(10, -39) + \frac{1}{2}(10, 64) = (10, 12.5) \\ D_{3,4}^- &= \frac{1}{2}(P_3 - P_2) + \frac{1}{2}(P_4 - P_3) = \frac{1}{2}((30, 50) - (20, -14)) + \frac{1}{2}((40, 0) - (30, 50)) \\ &= \frac{1}{2}(10, 64) + \frac{1}{2}(10, -50) = (10, 7) \\ \end{align*}

また、これより、実際の線の式は

P0,1(u)=(1u)3P0+3u(1u)2(P0+13D0,1)+3u2(1u)(P113D1,2)+u3P1=(1u)3(0,0)+3u(1u)2((0,0)+13(5,12.5))+3u2(1u)((10,25)13(10,7))+u3(10,25)=3u(1u)2(1.67,4.17)+3u2(1u)(6.67,27.33)+u3(10,25)P1,2(u)=(1u)3P1+3u(1u)2(P1+13D1,2)+3u2(1u)(P213D2,3)+u3P2=(1u)3(10,25)+3u(1u)2((10,25)+13(10,7))+3u2(1u)((20,14)13(10,12.5))+u3(20,14)=(1u)3(10,25)+3u(1u)2(13.33,22.67)+3u2(1u)(16.67,18.17)+u3(20,14)P2,3(u)=(1u)3P2+3u(1u)2(P2+13D2,3)+3u2(1u)(P313D3,4)+u3P3=(1u)3(20,14)+3u(1u)2((20,14)+13(10,12.5))+3u2(1u)((30,50)13(10,7))+u3(30,50)=(1u)3(20,14)+3u(1u)2(23.33,9.83)+3u2(1u)(26.67,47.67)+u3(30,50)P3,4(u)=(1u)3P3+3u(1u)2(P3+13D3,4)+3u2(1u)(P413D4,5)+u3P4=(1u)3(30,50)+3u(1u)2((30,50)+13(10,7))+3u2(1u)((40,0)13(0,0))+u3(40,0)=(1u)3(30,50)+3u(1u)2(33.33,52.33)+3u2(1u)(40,0)+u3(40,0)\begin{align*} P_{0,1}(u) &= (1-u)^3P_0 + 3u(1-u)^2(P_0 + \frac{1}{3}D_{0,1}^-) + 3u^2(1-u)(P_1 - \frac{1}{3}D_{1,2}^-) + u^3P_1 \\ &= (1-u)^3(0,0) + 3u(1-u)^2((0,0) + \frac{1}{3}(5, 12.5)) + 3u^2(1-u)((10,25) - \frac{1}{3}(10, -7)) + u^3(10,25) \\ &= 3u(1-u)^2(1.67, 4.17) + 3u^2(1-u)(6.67, 27.33) + u^3(10,25) \\ \\ P_{1,2}(u) &= (1-u)^3P_1 + 3u(1-u)^2(P_1 + \frac{1}{3}D_{1,2}^-) + 3u^2(1-u)(P_2 - \frac{1}{3}D_{2,3}^-) + u^3P_2 \\ &= (1-u)^3(10,25) + 3u(1-u)^2((10,25) + \frac{1}{3}(10, -7)) + 3u^2(1-u)((20,-14) - \frac{1}{3}(10, 12.5)) + u^3(20,-14) \\ &= (1-u)^3(10,25) + 3u(1-u)^2(13.33, 22.67) + 3u^2(1-u)(16.67, -18.17) + u^3(20,-14) \\ \\ P_{2,3}(u) &= (1-u)^3P_2 + 3u(1-u)^2(P_2 + \frac{1}{3}D_{2,3}^-) + 3u^2(1-u)(P_3 - \frac{1}{3}D_{3,4}^-) + u^3P_3 \\ &= (1-u)^3(20,-14) + 3u(1-u)^2((20,-14) + \frac{1}{3}(10, 12.5)) + 3u^2(1-u)((30,50) - \frac{1}{3}(10, 7)) + u^3(30,50) \\ &= (1-u)^3(20,-14) + 3u(1-u)^2(23.33, -9.83) + 3u^2(1-u)(26.67, 47.67) + u^3(30,50) \\ \\ P_{3,4}(u) &= (1-u)^3P_3 + 3u(1-u)^2(P_3 + \frac{1}{3}D_{3,4}^-) + 3u^2(1-u)(P_4 - \frac{1}{3}D_{4,5}^-) + u^3P_4 \\ &= (1-u)^3(30,50) + 3u(1-u)^2((30,50) + \frac{1}{3}(10, 7)) + 3u^2(1-u)((40,0) - \frac{1}{3}(0, 0)) + u^3(40,0) \\ &= (1-u)^3(30,50) + 3u(1-u)^2(33.33, 52.33) + 3u^2(1-u)(40, 0) + u^3(40,0) \\ \end{align*}

となる。

P3,4P_{3,4}を高Tension設定にした場合

  • パラメータ設定
    • t=0.8,c=0,b=0t = 0.8, c = 0, b = 0

下記のような計算結果となり、結果各セグメントの線は下記のようになる。

D3,4=(10.8)(1+0)(1+0)2(P3P2)+(10.8)(10)(10)2(P4P3)=0.22((30,50)(20,14))+0.22((40,0)(30,50))=0.1(10,64)+0.1(10,50)=(2,1.4)\begin{align*} D_{3,4}^- &= \frac{(1-0.8)(1+0)(1+0)}{2}(P_3 - P_2) + \frac{(1-0.8)(1-0)(1-0)}{2}(P_4 - P_3) \\ &= \frac{0.2}{2}((30, 50) - (20, -14)) + \frac{0.2}{2}((40, 0) - (30, 50)) \\ &= 0.1(10, 64) + 0.1(10, -50) = (2, 1.4) \\ \end{align*}

P3,4P_{3,4}セグメントの曲線式:

P3,4(u)=(1u)3P3+3u(1u)2(P3+13D3,4)+3u2(1u)(P413D4,5)+u3P4=(1u)3(30,50)+3u(1u)2((30,50)+13(2,1.4))+3u2(1u)((40,0)13(0,0))+u3(40,0)=(1u)3(30,50)+3u(1u)2(30.67,50.47)+3u2(1u)(40,0)+u3(40,0)\begin{align*} P_{3,4}(u) &= (1-u)^3P_3 + 3u(1-u)^2(P_3 + \frac{1}{3}D_{3,4}^-) + 3u^2(1-u)(P_4 - \frac{1}{3}D_{4,5}^-) + u^3P_4 \\ &= (1-u)^3(30,50) + 3u(1-u)^2((30,50) + \frac{1}{3}(2, 1.4)) + 3u^2(1-u)((40,0) - \frac{1}{3}(0, 0)) + u^3(40,0) \\ &= (1-u)^3(30,50) + 3u(1-u)^2(30.67, 50.47) + 3u^2(1-u)(40, 0) + u^3(40,0) \\ \end{align*}

P3,4P_{3,4}を負のcontinuityを設定した場合

  • パラメータ設定
    • t=0,c=0.6,b=0t = 0, c = -0.6, b = 0

下記のような計算結果となり、結果各セグメントの線は下記のようになる。

D3,4=(10)(1+0)(1+(0.6))2(P3P2)+(10)(10)(1(0.6))2(P4P3)=0.42((30,50)(20,14))+1.62((40,0)(30,50))=0.2(10,64)+0.8(10,50)=(2,12.8)+(8,40)=(10,27.2)\begin{align*} D_{3,4}^- &= \frac{(1-0)(1+0)(1+(-0.6))}{2}(P_3 - P_2) + \frac{(1-0)(1-0)(1-(-0.6))}{2}(P_4 - P_3) \\ &= \frac{0.4}{2}((30, 50) - (20, -14)) + \frac{1.6}{2}((40, 0) - (30, 50)) \\ &= 0.2(10, 64) + 0.8(10, -50) = (2, 12.8) + (8, -40) = (10, -27.2) \\ \end{align*}

P3,4P_{3,4}セグメントの曲線式:

P3,4(u)=(1u)3P3+3u(1u)2(P3+13D3,4)+3u2(1u)(P413D4,5)+u3P4=(1u)3(30,50)+3u(1u)2((30,50)+13(10,27.2))+3u2(1u)((40,0)13(0,0))+u3(40,0)=(1u)3(30,50)+3u(1u)2(33.33,40.93)+3u2(1u)(40,0)+u3(40,0)\begin{align*} P_{3,4}(u) &= (1-u)^3P_3 + 3u(1-u)^2(P_3 + \frac{1}{3}D_{3,4}^-) + 3u^2(1-u)(P_4 - \frac{1}{3}D_{4,5}^-) + u^3P_4 \\ &= (1-u)^3(30,50) + 3u(1-u)^2((30,50) + \frac{1}{3}(10, -27.2)) + 3u^2(1-u)((40,0) - \frac{1}{3}(0, 0)) + u^3(40,0) \\ &= (1-u)^3(30,50) + 3u(1-u)^2(33.33, 40.93) + 3u^2(1-u)(40, 0) + u^3(40,0) \\ \end{align*}

P3,4P_{3,4}を負のTension設定にした場合

  • パラメータ設定
    • t=0.8,c=0,b=0t = -0.8, c = 0, b = 0
D3,4=(1(0.8))(1+0)(1+0)2(P3P2)+(1(0.8))(10)(10)2(P4P3)=1.82((30,50)(20,14))+1.82((40,0)(30,50))=0.9(10,64)+0.9(10,50)=(9,57.6)+(9,45)=(18,12.6)\begin{align*} D_{3,4}^- &= \frac{(1-(-0.8))(1+0)(1+0)}{2}(P_3 - P_2) + \frac{(1-(-0.8))(1-0)(1-0)}{2}(P_4 - P_3) \\ &= \frac{1.8}{2}((30, 50) - (20, -14)) + \frac{1.8}{2}((40, 0) - (30, 50)) \\ &= 0.9(10, 64) + 0.9(10, -50) = (9, 57.6) + (9, -45) = (18, 12.6) \\ \end{align*}

P3,4P_{3,4}セグメントの曲線式:

P3,4(u)=(1u)3P3+3u(1u)2(P3+13D3,4)+3u2(1u)(P413D4,5)+u3P4=(1u)3(30,50)+3u(1u)2((30,50)+13(18,12.6))+3u2(1u)((40,0)13(0,0))+u3(40,0)=(1u)3(30,50)+3u(1u)2(36,54.2)+3u2(1u)(40,0)+u3(40,0)\begin{align*} P_{3,4}(u) &= (1-u)^3P_3 + 3u(1-u)^2(P_3 + \frac{1}{3}D_{3,4}^-) + 3u^2(1-u)(P_4 - \frac{1}{3}D_{4,5}^-) + u^3P_4 \\ &= (1-u)^3(30,50) + 3u(1-u)^2((30,50) + \frac{1}{3}(18, 12.6)) + 3u^2(1-u)((40,0) - \frac{1}{3}(0, 0)) + u^3(40,0) \\ &= (1-u)^3(30,50) + 3u(1-u)^2(36, 54.2) + 3u^2(1-u)(40, 0) + u^3(40,0) \\ \end{align*}

P3,4P_{3,4}をbiasのみ設定した場合

  • パラメータ設定
    • t=0,c=0,b=0.7t = 0, c = 0, b = 0.7
D3,4=(10)(1+0.7)(1+0)2(P3P2)+(10)(10.7)(10)2(P4P3)=1.72((30,50)(20,14))+0.32((40,0)(30,50))=0.85(10,64)+0.15(10,50)=(8.5,54.4)+(1.5,7.5)=(10,46.9)\begin{align*} D_{3,4}^- &= \frac{(1-0)(1+0.7)(1+0)}{2}(P_3 - P_2) + \frac{(1-0)(1-0.7)(1-0)}{2}(P_4 - P_3) \\ &= \frac{1.7}{2}((30, 50) - (20, -14)) + \frac{0.3}{2}((40, 0) - (30, 50)) \\ &= 0.85(10, 64) + 0.15(10, -50) = (8.5, 54.4) + (1.5, -7.5) = (10, 46.9) \\ \end{align*}

P3,4P_{3,4}セグメントの曲線式:

P3,4(u)=(1u)3P3+3u(1u)2(P3+13D3,4)+3u2(1u)(P413D4,5)+u3P4=(1u)3(30,50)+3u(1u)2((30,50)+13(10,46.9))+3u2(1u)((40,0)13(0,0))+u3(40,0)=(1u)3(30,50)+3u(1u)2(33.33,65.63)+3u2(1u)(40,0)+u3(40,0)\begin{align*} P_{3,4}(u) &= (1-u)^3P_3 + 3u(1-u)^2(P_3 + \frac{1}{3}D_{3,4}^-) + 3u^2(1-u)(P_4 - \frac{1}{3}D_{4,5}^-) + u^3P_4 \\ &= (1-u)^3(30,50) + 3u(1-u)^2((30,50) + \frac{1}{3}(10, 46.9)) + 3u^2(1-u)((40,0) - \frac{1}{3}(0, 0)) + u^3(40,0) \\ &= (1-u)^3(30,50) + 3u(1-u)^2(33.33, 65.63) + 3u^2(1-u)(40, 0) + u^3(40,0) \\ \end{align*}

複数のパラメータを同時に変更した場合

Section titled “複数のパラメータを同時に変更した場合”

より複雑な効果を得るために、複数のパラメータを組み合わせることができる。例えば、P3,4P_{3,4}に対してt=0.5,c=0.4,b=0.3t = 0.5, c = -0.4, b = 0.3を設定すると:

D3,4=(10.5)(1+0.3)(1+(0.4))2(P3P2)+(10.5)(10.3)(1(0.4))2(P4P3)=0.5×1.3×0.62((30,50)(20,14))+0.5×0.7×1.42((40,0)(30,50))=0.195(10,64)+0.245(10,50)=(1.95,12.48)+(2.45,12.25)=(4.4,0.23)\begin{align*} D_{3,4}^- &= \frac{(1-0.5)(1+0.3)(1+(-0.4))}{2}(P_3 - P_2) + \frac{(1-0.5)(1-0.3)(1-(-0.4))}{2}(P_4 - P_3) \\ &= \frac{0.5 \times 1.3 \times 0.6}{2}((30, 50) - (20, -14)) + \frac{0.5 \times 0.7 \times 1.4}{2}((40, 0) - (30, 50)) \\ &= 0.195(10, 64) + 0.245(10, -50) = (1.95, 12.48) + (2.45, -12.25) = (4.4, 0.23) \\ \end{align*}

P3,4P_{3,4}セグメントの曲線式:

P3,4(u)=(1u)3P3+3u(1u)2(P3+13D3,4)+3u2(1u)(P413D4,5)+u3P4=(1u)3(30,50)+3u(1u)2((30,50)+13(4.4,0.23))+3u2(1u)((40,0)13(0,0))+u3(40,0)=(1u)3(30,50)+3u(1u)2(31.47,50.08)+3u2(1u)(40,0)+u3(40,0)\begin{align*} P_{3,4}(u) &= (1-u)^3P_3 + 3u(1-u)^2(P_3 + \frac{1}{3}D_{3,4}^-) + 3u^2(1-u)(P_4 - \frac{1}{3}D_{4,5}^-) + u^3P_4 \\ &= (1-u)^3(30,50) + 3u(1-u)^2((30,50) + \frac{1}{3}(4.4, 0.23)) + 3u^2(1-u)((40,0) - \frac{1}{3}(0, 0)) + u^3(40,0) \\ &= (1-u)^3(30,50) + 3u(1-u)^2(31.47, 50.08) + 3u^2(1-u)(40, 0) + u^3(40,0) \\ \end{align*}

P3,4P_{3,4}に対して同じtension, continuityに対してbを変えた場合の効果を確認する

  • パラメータ設定
    • t=0.9,c=0.7t = 0.9, c = -0.7, bは可変
D3,4=(10.9)(1+(0.3))(1+(0.7))2(P3P2)+(10.9)(1(0.3))(1(0.7))2(P4P3)=0.1×0.7×0.32((30,50)(20,14))+0.1×1.3×1.72((40,0)(30,50))=0.0105(10,64)+0.1105(10,50)=(0.105,0.672)+(1.105,5.525)=(1.21,4.853)\begin{align*} D_{3,4}^- &= \frac{(1-0.9)(1+(-0.3))(1+(-0.7))}{2}(P_3 - P_2) + \frac{(1-0.9)(1-(-0.3))(1-(-0.7))}{2}(P_4 - P_3) \\ &= \frac{0.1 \times 0.7 \times 0.3}{2}((30, 50) - (20, -14)) + \frac{0.1 \times 1.3 \times 1.7}{2}((40, 0) - (30, 50)) \\ &= 0.0105(10, 64) + 0.1105(10, -50) = (0.105, 0.672) + (1.105, -5.525) = (1.21, -4.853) \\ \end{align*}

P3,4P_{3,4}セグメントの曲線式:

P3,4(u)=(1u)3P3+3u(1u)2(P3+13D3,4)+3u2(1u)(P413D4,5)+u3P4=(1u)3(30,50)+3u(1u)2((30,50)+13(1.21,4.853))+3u2(1u)((40,0)13(0,0))+u3(40,0)=(1u)3(30,50)+3u(1u)2(30.40,48.38)+3u2(1u)(40,0)+u3(40,0)\begin{align*} P_{3,4}(u) &= (1-u)^3P_3 + 3u(1-u)^2(P_3 + \frac{1}{3}D_{3,4}^-) + 3u^2(1-u)(P_4 - \frac{1}{3}D_{4,5}^-) + u^3P_4 \\ &= (1-u)^3(30,50) + 3u(1-u)^2((30,50) + \frac{1}{3}(1.21, -4.853)) + 3u^2(1-u)((40,0) - \frac{1}{3}(0, 0)) + u^3(40,0) \\ &= (1-u)^3(30,50) + 3u(1-u)^2(30.40, 48.38) + 3u^2(1-u)(40, 0) + u^3(40,0) \\ \end{align*} D3,4=(10.9)(1+0.3)(1+(0.7))2(P3P2)+(10.9)(10.3)(1(0.7))2(P4P3)=0.1×1.3×0.32((30,50)(20,14))+0.1×0.7×1.72((40,0)(30,50))=0.0195(10,64)+0.0595(10,50)=(0.195,1.248)+(0.595,2.975)=(0.79,1.727)\begin{align*} D_{3,4}^- &= \frac{(1-0.9)(1+0.3)(1+(-0.7))}{2}(P_3 - P_2) + \frac{(1-0.9)(1-0.3)(1-(-0.7))}{2}(P_4 - P_3) \\ &= \frac{0.1 \times 1.3 \times 0.3}{2}((30, 50) - (20, -14)) + \frac{0.1 \times 0.7 \times 1.7}{2}((40, 0) - (30, 50)) \\ &= 0.0195(10, 64) + 0.0595(10, -50) = (0.195, 1.248) + (0.595, -2.975) = (0.79, -1.727) \\ \end{align*}

P3,4P_{3,4}セグメントの曲線式:

P3,4(u)=(1u)3P3+3u(1u)2(P3+13D3,4)+3u2(1u)(P413D4,5)+u3P4=(1u)3(30,50)+3u(1u)2((30,50)+13(0.79,1.727))+3u2(1u)((40,0)13(0,0))+u3(40,0)=(1u)3(30,50)+3u(1u)2(30.26,49.42)+3u2(1u)(40,0)+u3(40,0)\begin{align*} P_{3,4}(u) &= (1-u)^3P_3 + 3u(1-u)^2(P_3 + \frac{1}{3}D_{3,4}^-) + 3u^2(1-u)(P_4 - \frac{1}{3}D_{4,5}^-) + u^3P_4 \\ &= (1-u)^3(30,50) + 3u(1-u)^2((30,50) + \frac{1}{3}(0.79, -1.727)) + 3u^2(1-u)((40,0) - \frac{1}{3}(0, 0)) + u^3(40,0) \\ &= (1-u)^3(30,50) + 3u(1-u)^2(30.26, 49.42) + 3u^2(1-u)(40, 0) + u^3(40,0) \\ \end{align*}

この設定により:

  • 高いTensionで接線が短くなり、曲線が平坦化
  • 負のContinuityで方向転換が鋭くなる
  • Biasの調整で前後点の影響度が変化

P2,3P_{2,3}を高Tension設定にした場合

  • パラメータ設定
    • t=0.8,c=0,b=0t = 0.8, c = 0, b = 0

[この計算結果を掲載]

P2,3P_{2,3}を負のcontinuityを設定した場合

  • パラメータ設定
    • t=0,c=0.6,b=0t = 0, c = -0.6, b = 0

[この計算結果を掲載]

P2,3P_{2,3}を負のTension設定にした場合

  • パラメータ設定
    • t=0.8,c=0,b=0t = -0.8, c = 0, b = 0

[この計算結果を掲載]

P2,3P_{2,3}をbiasのみ設定した場合

  • パラメータ設定
    • t=0,c=0,b=0.7t = 0, c = 0, b = 0.7

[この計算結果を掲載]

複数のパラメータを同時に変更した場合

Section titled “複数のパラメータを同時に変更した場合”

P2,3P_{2,3}に対してt=0.5,c=0.4,b=0.3t = 0.5, c = -0.4, b = 0.3を設定した場合

[この計算結果を掲載]

P2,3P_{2,3}に対して同じtension, continuityに対してbを変えた場合の効果を確認する

  • パラメータ設定
    • t=0.9,c=0.7t = 0.9, c = -0.7, bは可変

[この計算結果を掲載]

[この計算結果を掲載]

[この計算結果を掲載]

パラメータ設定の数学的安全範囲

Section titled “パラメータ設定の数学的安全範囲”

理論的にはパラメータは[-1,1]の範囲だが、数値計算上の安全性から推奨範囲がある:

  • Tension安全範囲(t ∈ [-0.9, 0.9])

    • t < -0.9: 係数(1-t) > 1.9となり、極端な拡大でオーバーシュート
    • t > 0.9: 係数(1-t) < 0.1となり、接線がほぼ消失
  • Continuity安全範囲(c ∈ [-0.8, 0.8])

    • 極端な値では(1+c)または(1-c)が0に近づき、片方の影響が消失
  • Bias安全範囲(b ∈ [-0.9, 0.9])

    • 極端な値では一方の点の影響が過度に強まる
  • オーバーシュート: 曲線が制御点を超えて「行き過ぎる」現象
  • エルミート基底関数: エルミート補間で使用される3次多項式の基底関数
  • カトマル・ロム補間: 接線を隣接点から計算する特殊なエルミートスプライン