Edit/Greville point explanation wanted

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.)

1 Like

@dalelear… can you comment?

-Pascal

1 Like

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.

2 Likes

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.

1 Like

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.

1 Like

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 )

3 Likes

While putting together some basic Alias/ICEM transition-to-Rhino information, it really is the knots/isocurves that matter, not Rhino’s “edit points” (Greville points). That’s why it’s useful to (ab)use InsertKnot to temporarily see knots/isocurves (it’s best to set Isocurve Density to 0 for surfaces so only “real” isocurves are displayed).

@encephalon made a useful (non-persistent) macro to display the knots.

1 Like

All isocurves displayed by Rhino are real. Rhino does not display fake isocurves. The isocurves @Lagom is interested in and which labels as “real” are located at the knots of surfaces and are between spans of surfaces.

1 Like

Well, one could also call them “why am I here curves” ; )

1 Like

Some play for fun with the Greville points while building a blend surface.

Rhino allows you to see the Greville points of the “Interior shapes” and snap to them during the preview of the Blend surface. In this video, I moved the end control points (blend handles), while the Greville points were temporarily shown during the preview. I purposely moved the mouse pointer closer to the target edge to show the Greville points. they don’t show if the mouse pointer is far away.

Few people are aware that a preview of the surface Greville points is available at this earlier stage of the surface creation.

After a blend curve is already built, you can turn on the edit points a.k.a. Greville points for a direct control over the shape of the surface. However, Greville points are not available for surfaces in Rhino yet.

The link to Rhino’s help in my post above mentions the following:

Interior shapes

Turns on or off including all of the shapes at Greville points for simple blends. The use of interior shapes takes the entire surface edge selection taken into account for continuity.

The Interior shapes and Refine checkboxes cannot be enabled at the same time.

I did not know about the Greville points being displayed during BlendSrf.

A bit of experimentation showed the the Greville points are only visible if the target surfaces are uniform in the direction along edges being blended. In that case the Greville points coincide with the knots. If the knots are not uniform then the Greville points are not shown.

There’s a good reason why Alias, ICEM, Catia, et al. don’t bother with Greville points. As a surface modeller, you are interested in CVs (CPs), hulls (control polygons), and edit points (knots).

I could imagine they use it internally as an initial guess for approximation. I do use them for Bezier interpolation. From there you can then anneal and smooth the resulting curve/surface until you get them below a given threshold distance.

Edit points on curves are super useful to snap to certain locations.

Greville Points are the same as Edit Points.

Rhino exposes Greville points to the user as “edit points”. I never found a useful application for them in surface modelling. Thankfully, @encephalon recently made a basic script to expose a curve’s knots.

Degree 5/6 blade curves (FISKARS Santoku knife).

They are the same in Rhino, but that is not universal.

Knots can also be used as edit points with suitable additional constraints. For a curve of odd degree the additional constraints are typically 1 point at each end for degree 3, 2 points at each end for degree 5, etc. What to use for the additional constraints is not as obvious for even degree curves. Also if knots are use the resulting systems of equations are not always strongly diagonally dominant which can require more sophisticated matrix solvers.