This classes located in module `ezdxf.algebra`:

```from ezdxf.algebra import BSpline
```

BSpline¶

class `ezdxf.algebra.``BSpline`

Calculate the vertices of a B-spline curve, using an uniform open knot vector (clamped curve).

`BSpline.``control_points`

Control points as list of `Vector` objects

`BSpline.``count`

Count of control points, (n + 1 in math definition).

`BSpline.``order`

Order of B-spline = degree + 1

`BSpline.``degree`

Degree (p) of B-spline = order - 1

`BSpline.``max_t`

Max knot value.

`BSpline.``knot_values`()

Returns a list of knot values as floats, the knot vector always has order+count values (n + p + 2 in math definition)

`BSpline.``basis_values`(t)

Returns the basis vector for position t.

`BSpline.``approximate`(segments)

Approximates the whole B-spline from 0 to max_t, by line segments as a list of vertices, vertices count = segments + 1

`BSpline.``point`(t)

Returns the B-spline vertex at position t as (x, y[, z]) tuple.

BSplineU¶

class `ezdxf.algebra.``BSpline`(BSpline)

Calculate the points of a B-spline curve, uniform (periodic) knot vector (open curve).

BSplineClosed¶

class `ezdxf.algebra.``BSplineClosed`(BSplineU)

Calculate the points of a closed uniform B-spline curve (closed curve).

DBSpline¶

class `ezdxf.algebra.``DBSpline`(BSpline)

Calculate points and derivative of a B-spline curve, using an uniform open knot vector (clamped curve).

`DBSpline.``point`(t)

Returns the B-spline vertex, 1. derivative and 2. derivative at position t as tuple (vertex, d1, d2), each value is a (x, y, z) tuple.

DBSplineU¶

class `ezdxf.algebra.``DBSplineU`(DBSpline)

Calculate points and derivative of a B-spline curve, uniform (periodic) knot vector (open curve).

DBSplineClosed¶

class `ezdxf.algebra.``DBSplineClosed`(DBSplineU)

Calculate the points and derivative of a closed uniform B-spline curve (closed curve).