Surface from Curves =================== .. image:: https://github.com/nortikin/sverchok/assets/14288520/58e5090a-77b1-46fc-b42d-4b86453f4dc1 :target: https://github.com/nortikin/sverchok/assets/14288520/58e5090a-77b1-46fc-b42d-4b86453f4dc1 Dependencies ------------ This node can optionally use Geomdl_ and / or SciPy_ libraries. .. _Geomdl: https://onurraufbingol.com/NURBS-Python/ .. _SciPy: https://scipy.org/ Functionality ------------- This node generates a Surface object by interpolating several Curves. This operation is also known as "Loft". Several interpolation modes are supported. .. image:: https://github.com/nortikin/sverchok/assets/14288520/fd83f175-9523-45ca-8bce-9678ef44cd35 :target: https://github.com/nortikin/sverchok/assets/14288520/fd83f175-9523-45ca-8bce-9678ef44cd35 * Scene-> :doc:`Bezier Input </nodes/exchange/bezier_in>` * Surfaces-> :doc:`Evaluate Surface </nodes/surface/evaluate_surface>` * Viz-> :doc:`Viewer Draw </nodes/viz/viewer_draw_mk4>` See also "NURBS Loft" node. Surface domain: from 0 to 1 in both directions. .. image:: https://github.com/nortikin/sverchok/assets/14288520/2591dc7c-6150-4451-b0a4-3e0742093894 :target: https://github.com/nortikin/sverchok/assets/14288520/2591dc7c-6150-4451-b0a4-3e0742093894 * Surfaces-> :doc:`Surface Domain </nodes/surface/surface_domain>` * List->List Main-> :doc:`List Join </nodes/list_main/join>` * Text-> :doc:`Stethoscope </nodes/text/stethoscope_v28>` Inputs ------ This node has the following inputs: * **Curves**. The list of curves to interpolate between. For Linear interpolation, at least two curves are required; for Cubic interpolation, at least three curves are required. Parameters ---------- This node has the following parameters: * **Interpolation mode**. The available values are: * **Linear** * **Cubic** * **BSpline**. Use B-Spline (NURBS) interpolation. * **RBF**. Use Radial Basis Functions (RBF_) interpolation. This mode is available only when SciPy_ library is available. The default mode is **Linear**. * **Implementation**. This parameter is available only if **Interpolation mode** parameter is set to **BSpline**. This defines the implementation of NURBS mathematics to be used. The available options are: * **Geomdl**. Use Geomdl_ library. This option is available only when Geomdl package is installed. * **Sverchok**. Use built-in Sverchok implementation. In general, built-in implementation should be faster; but Geomdl implementation is better tested. The default option is **Geomdl**, when it is available; otherwise, built-in implementation is used. * **Function**. This parameter is available only when **Interpolation mode** parameter is set to **RBF**. The specific function used by the node. The available values are: * Multi Quadric * Inverse * Gaussian * Cubic * Quintic * Thin Plate The default function is Multi Quadric. * **Cyclic**. This parameter is available only when **Interpolation mode** parameter is set to **Linear** or **Cubic**. This defines whether the surface should be cyclic (closed) in the U direction - i.e., should the node create an interpolation between the last curve and the first one. Unchecked by default. .. _RBF: http://www.scholarpedia.org/article/Radial_basis_function Outputs ------- This node has the following output: * **Surface**. The generated surface. Examples of usage ----------------- Linear interpolation between several polylines: .. image:: https://user-images.githubusercontent.com/284644/79368209-771df600-7f68-11ea-9d65-90257d257bd0.png :target: https://user-images.githubusercontent.com/284644/79368209-771df600-7f68-11ea-9d65-90257d257bd0.png * Generator-> :doc:`NGon </nodes/generator/ngon>` * Generator-> :doc:`Segment </nodes/generator/segment>` * Curves->Curve Primitives-> :doc:`Polyline </nodes/curve/polyline>` * Transform-> :doc:`Matrix Apply (verts) </nodes/transforms/apply>` * Number-> :doc:`Random Num Gen </nodes/number/random_num_gen>` * Viz-> :doc:`Viewer Draw </nodes/viz/viewer_draw_mk4>` * Surfaces-> :doc:`Evaluate Surface </nodes/surface/evaluate_surface>` The same but with Cubic interpolation: .. image:: https://user-images.githubusercontent.com/284644/79368213-784f2300-7f68-11ea-80c0-059469ba14d9.png :target: https://user-images.githubusercontent.com/284644/79368213-784f2300-7f68-11ea-80c0-059469ba14d9.png * Generator-> :doc:`NGon </nodes/generator/ngon>` * Generator-> :doc:`Segment </nodes/generator/segment>` * Curves->Curve Primitives-> :doc:`Polyline </nodes/curve/polyline>` * Transform-> :doc:`Matrix Apply (verts) </nodes/transforms/apply>` * Number-> :doc:`Random Num Gen </nodes/number/random_num_gen>` * Viz-> :doc:`Viewer Draw </nodes/viz/viewer_draw_mk4>` * Surfaces-> :doc:`Evaluate Surface </nodes/surface/evaluate_surface>` Cubic interpolation between several curves (generated by trigonometric formula): .. image:: https://user-images.githubusercontent.com/284644/79369070-d0d2f000-7f69-11ea-97f6-b71d33f49b97.png :target: https://user-images.githubusercontent.com/284644/79369070-d0d2f000-7f69-11ea-97f6-b71d33f49b97.png * Number-> :doc:`Number Range </nodes/number/number_range>` * Number-> :doc:`Random Num Gen </nodes/number/random_num_gen>` * Curves-> :doc:`Curve Formula </nodes/curve/curve_formula>` * Surfaces-> :doc:`Evaluate Surface </nodes/surface/evaluate_surface>` * Viz-> :doc:`Viewer Draw </nodes/viz/viewer_draw_mk4>`