compas-dev / compas_nurbs

NURBS for COMPAS
https://gramaziokohler.github.io/compas_nurbs/latest/
MIT License
9 stars 3 forks source link

Name of BSpline #6

Closed beverlylytle closed 4 years ago

beverlylytle commented 4 years ago

https://github.com/gramaziokohler/compas_nurbs/blob/ef3614ae7f6b4361d0d6ff0578d52840600ad10d/src/compas_nurbs/bspline.py#L18

It is my understanding that B-spline refers to basis spline, that is, given a degree and a list of knots, one takes linear combinations (with coefficients given by the control points) of the basis splines with that degree and those knots to get any generic spline. Since this class BSpline contains control point and weight data, it seems more appropriate to call it Spline. Or is it common to refer to both the basis elements and the representations of generic splines by the coefficients of the basis splines as b-splines?

romanarust commented 4 years ago

you are right, Spline seems more appropriate.

beverlylytle commented 4 years ago

I guess this answers my question. B-spline refers to both the one particular set of basis elements and the representation of a generic splines by this basis....

Also, can't we go back to ducks instead of knots? https://en.wikipedia.org/wiki/Non-uniform_rational_B-spline#Historical_background

tomvanmele commented 4 years ago

would the curve object in compas.geometry be a "Bezier" or a "BSpline"?

beverlylytle commented 4 years ago

The compas.geometry object looks like a Bezier spline to me. Schoenberg could have done a better job naming B-spline.

romanarust commented 4 years ago

Anyway, the whole naming is super tricky.... Through Rhino, we are used to refer to Curve and NurbsCurve, but correct would be NUBS-Curve and NURBS-Curve // or Curve and RationalCurve