Anyone know of a reference describing Greville points and why they are useful for editing curves? I’m curious why Greville points are used in Rhino as edit points. For non-uniform knot spacing the Greville points do not coincide with knots. (I.e. the points on the curve with the knot parameter values for those who prefer to consider knots as only parameter values.)
@dalelear… can you comment?
The Greville points lie on the curve, so rather than controlling the curve shape “at a distance” by changing control points, the Greville points allow manipulation of the exact point the curve passes through.
You are right that the Greville points do not coincide with knots if the knot spacing is not uniform, that is because they are averaged over curve-degree number of knots.
Greville points are also known as Greville abscissae, and Google turns up interesting hits for both terms.
Menno, thank you for your response. I previously did a Google search for Greville points and abscissae. The references I found described Greville points as important and defined them as the average of knot values. I didn’t find any that discussed the use of Greville points in editing curves. I posted my question in the hope that someone could suggest a reference about the use of Greville points in editing curves.
What is special about Greville points? Why are Greville points used as edit points rather than another set of points on the curve, for instance a set of points which include the knots?
Do Greville points as edit points have properties which aid or simplify the determination of the curve after an edit point is moved? One reference I found said something about Greville points being the points where individual control points have maximum influence on the curve. Are Greville points used as edit points because after an edit point is moved the resulting matrix/equations which need to be solved to determine the revised curve are more strongly diagonally dominant than if a different set of edit points was used? Or is there something else special about Greville points as edit points?
At this time these questions are based on curiosity rather than a particular design problem.
You can go back and forth easily between control points and Greville points, using the mathematics of B-spline curves. That makes the Greville points logical choices to use as edit points, because after moving the edit point, the locations of all control points can be computed.
And I guess that because of their averaged nature, the influence of each control point is taken into account at the same level, making it mathematically more stable/robust. The matrix structure is always a banded matrix with bandwidth related to the degree of the curve.
That is not a uniqe property of Greville points. Locations of control points can be computed after moving an edit point which is a member of a different set of edit points. There are limitations on the locations of edit points with a minimum requirement that at least one edit point be within the region of influence of each control point, and a additional restriction if a banded matrix is desired. While Greville points are a good choice for edit points they are not the only choice. The edit points do not need to be Greville points to have a solvable banded matrix. I’ve written code it the distant past which for arbitrary sets of edit points.
Are there any other properties of Greville points which make them desirable to use as edit points? For instance does the use of Greville points allow the use of a special algorithm for solving for the new control point locations? Or are Greville points used because they lead to well behaved matrices and and their locations are easy to calculate? I was hoping someone might be able to provide a reference which discussed Greville points as edit points.
Mostly this. Also, when you move them, the control points tend to move similarly, which may not be the case for other choices.
From a user experience point of view, Chuck’s remark is the key point.
From a mathematical point of view, Greville abcissa are useful when you want a NURBS curve with N control points to interpolate N points and you have some scheme for predetermining the degree and knot vector. In practice the results are often “wiggly” (which is a typical problem with spline interpolation when the number of free control points is close to the number of interpolated points). Quite often the knot vector is simply guessed at which contributes to getting wiggly results.
The mathematical property that makes Greville abcissae useful is that they work with any degree, any knot vector, and the interpolation matrix has good properties that insure the interpolation problem can be efficiently and accurately solved using simple row reduction techniques. ( https://www.sciencedirect.com/topics/mathematics/spline )