BSplineSurface

BSplineSurface[array]

is a graphics primitive that represents a nonuniform rational B-spline surface defined by an array of control points.

Details and Options

  • BSplineSurface is also known as basis spline surface and nonuniform rational B-spline (NURBS) surface.
  • BSplineSurface can be used in Graphics3D (three-dimensional graphics).
  • The positions of control points can be specified either in ordinary coordinates as {x,y,z}, or in scaled coordinates as Scaled[{x,y,z}].
  • The following options can be given:
  • SplineDegreeAutomaticdegree of polynomial basis
    SplineKnots Automaticknot sequence in each dimension
    SplineWeights Automaticcontrol point weights
    SplineClosedFalsewhether to make the surface closed
  • By default, BSplineSurface uses bicubic splines, corresponding to degree .
  • The option SplineDegree->d specifies maximal degree d in each direction. SplineDegree->{d1,d2} specifies different maximal degrees in the two directions within the surface.
  • By default, knots are chosen to be uniform and to make the surface reach the control points at the edges of the array.
  • SplineKnots->{list1,list2} specifies sequences of knots to use for the rows and columns of the array of control points.
  • With an explicit setting for SplineKnots, the degree of the polynomial basis is determined from the number of knots specified and the number of control points.
  • SplineWeights are automatically chosen to be 1, corresponding to a polynomial B-spline surface.
  • FaceForm and EdgeForm can be used to specify how the interiors and boundaries of BSplineSurface objects should be rendered.
  • You can use graphics directives such as GrayLevel, RGBColor, and Opacity to specify how BSplineSurface objects should be rendered.
  • You can specify surface material properties using the graphics directives Specularity and Opacity.
  • You can use FaceForm[front,back] to specify different properties for front and back faces.
  • Individual coordinates and lists of coordinates in BSplineSurface can be Dynamic objects.

Examples

open allclose all

Basic Examples  (1)

A B-spline surface for an array of control points:

Show the control points together with the B-spline surface:

Scope  (17)

Graphics  (11)

Specification  (5)

A B-spline surface:

B-spline surface with the same control points and different degrees:

By default, a B-spline surface is open:

A closed B-spline surface automatically adds the first control points at the end:

Knots can be explicitly specified to control the smoothness of a surface:

Weights can be specified to each point:

Styling  (4)

B-spline surface edges with different thicknesses:

Thickness in scaled size:

Thickness in printer's points:

Dashed surface edges:

Colored surfaces:

Coordinates  (2)

Use Scaled coordinates:

Use ImageScaled coordinates in 3D:

Regions  (6)

Embedding dimension:

Geometric dimension:

Point membership test:

Area:

Centroid:

Distance from a point:

Signed distance from a point:

A B-spline surface is bounded:

Get its range:

Options  (2)

SplineKnots  (1)

Create a 3D disk using BSplineSurface:

SplineWeights  (1)

Create a 3D disk using BSplineSurface:

Applications  (1)

Pipe section using a B-spline surface with weights:

Wolfram Research (2008), BSplineSurface, Wolfram Language function, https://reference.wolfram.com/language/ref/BSplineSurface.html.

Text

Wolfram Research (2008), BSplineSurface, Wolfram Language function, https://reference.wolfram.com/language/ref/BSplineSurface.html.

CMS

Wolfram Language. 2008. "BSplineSurface." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/BSplineSurface.html.

APA

Wolfram Language. (2008). BSplineSurface. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/BSplineSurface.html

BibTeX

@misc{reference.wolfram_2024_bsplinesurface, author="Wolfram Research", title="{BSplineSurface}", year="2008", howpublished="\url{https://reference.wolfram.com/language/ref/BSplineSurface.html}", note=[Accessed: 13-January-2025 ]}

BibLaTeX

@online{reference.wolfram_2024_bsplinesurface, organization={Wolfram Research}, title={BSplineSurface}, year={2008}, url={https://reference.wolfram.com/language/ref/BSplineSurface.html}, note=[Accessed: 13-January-2025 ]}