はじめに
NURBSとつくものの操作性の良さに気付いてきました。より使い方を勉強していきます。
Surface from Curves
参照元
sverchok/docs/nodes/surface/interpolating_surface.rst at master · nortikin/sverchok
Sverchok. Contribute to nortikin/sverchok development by creating an account on GitHub.
依存
このノードはオプション的にGeomdlとScipyライブラリが使用できます。
機能
このノードはいくつかのカーブを補間しながらサーフェスオブジェクトを生成します。このオペレーションは”Loft”として知られています。いくつかの補間モードがサポートされています。
“NURBS Loft”ノードも見てみてください。
サーフェスの領域:
- U方向V方向ともに0から1まで
入力
- Curves間を補間するカーブのリスト。線形補間では少なくとも2つのカーブが必要です。立方補間では少なくとも3つのカーブが必要です。
パラメータ
- Interpolation mode 利用可能な値は
- Linear
- Cubic
- BSplineB-Spline(NURBS)補間を使用する
- RBFRadial Basis Function(RBF)補間を使う。このモードはScipyライブラリが利用可能な場合にのみ利用可能。
デフォルトモードは線形です。
- ImplementationこのパラメータはInterpolation mode(補間モード)がBSplneの場合のみ利用可能。これはどのNURBS数学の実装が使われるかを定義する。利用可能な値は
- GeomdlGeomdlライブラリを使用する。このオプションはGeomdlパッケージがインストールされている場合のみ利用可能
- Sverchok ビルドインのSverchok実装を使う
一般的にビルドイン実装が最も速いです。しかしGeomdl実装はよくテストされています。利用可能な場合、デフォルトはGeomdlです。されていなければビルドイン実装です。
- FunctionこのパラメータはInterpolation mode(補間モード)がRBFの場合のみ利用可能。指定された関数はノードで使用されます。利用可能な値は
- Multi Quadric
- Inverse
- Gaussian
- Cubic
- Quintic
- Thin Plate
デフォルト値はMultiQuadricです
- CyclicこのパラメータはInterpolation mode(補間モード)がLinearまたはCubicの場合のみ利用可能。これはサーフェスがU方向に環状(Close)になるかどうかを定義します。つまり最後と最初のカーブが補間されます。デフォルトはチェック無しです。
出力
- Surface 生成されたサーフェス
その他
使用例が公式にあるので見てみてください
使ってみる
パックマン
- 黄緑の部分(カーブの作成)
- Planeの頂点を接続順で並び替え
- 並び替えたPlaneを35度から330度まで12回に分けて回転
- Number Range と List Split と Rotate部分
- パックマンの周りに見える黄色いラインがPlaneを回した結果の頂点と辺
- Build NURBS で12回回転したPlaneの頂点から12個のNURBSカーブを作成
- 水色の部分(面の作成)
- 補間モードをCubicにしてなめらかに補間するように設定
- Evaluate SurfaceでSurfaceデータを頂点と面の情報へ変換
- 赤い部分(オブジェクトの作成)
- Merge By Distanceでほとんど同じ個所に置かれた頂点をまとめる
- Solidifyで厚みを付ける
- Mesh Viewerでオブジェクト化
- 白い部分
- パックマンの餌を遊びで置いただけなので本題とは関係ない部分です。
- ただ口から進行方向へ直線を作成し、直線の頂点にSphereを配置しているだけです
最後に
🤔NURBS Loftノードとの違いはわかりませんでした。おそらく違いを理解しなければならないほど複雑なケースを行っていないためですね。またそのようなケースにぶつかるその日まで待つことにします。