
このコンポーネントは,制御点を格子状(DataTree)に並べた入力 P から,B-スプライン曲面上の点を指定した分割数で格子状に計算し,出力 S として返します。S を FromGridPts や FromGridPts2 に繋ぐと,曲面上に梁・シェル要素のモデルを自動生成できます。形状検討・形状最適化の起点として使います。
入力データは以下の通りです。赤字は入力必須データです。
出力データは以下の通りです。
制御点を $P_{i,j}$,次数を $D$ とすると,各方向の節点ベクトルはクランプ型の一様節点ベクトルです(u方向の例)。
$$ k_u=(\underbrace{0,\dots,0}{D},\,0,1,\dots,N-D,\,\underbrace{N-D,\dots,N-D}{D}) $$
$u$ は $[0,N-D]$ を U 個に,$v$ は $[0,M-D]$ を V 個に等分して評価します。基底関数はコックス・ド・ブールの漸化式で計算します。
$$ N_{i,0}(u)=\begin{cases}1 & (k_u[i]\le u<k_u[i+1])\\ 0 & (\text{otherwise})\end{cases} $$
$$ N_{i,d}(u)=\dfrac{u-k_u[i]}{k_u[i+d]-k_u[i]}N_{i,d-1}(u)+\dfrac{k_u[i+d+1]-u}{k_u[i+d+1]-k_u[i+1]}N_{i+1,d-1}(u) $$
$$ S(u,v)=\sum_{i=0}^{N-1}\sum_{j=0}^{M-1}P_{i,j}\,N_{i,D}(u)\,N_{j,D}(v) $$
<aside> 💡 名称は「Rational B-spline」ですが,実装では制御点の重み(ウェイト)を使っておらず,重み無しの通常のB-スプライン曲面を計算しています。
</aside>