Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"NURBS Curve Nodes" node. #4619

Merged
merged 2 commits into from
Aug 23, 2022
Merged

"NURBS Curve Nodes" node. #4619

merged 2 commits into from
Aug 23, 2022

Conversation

portnov
Copy link
Collaborator

@portnov portnov commented Aug 23, 2022

This node calculates so-called node points (also known as Greville points or
average knot points) of the NURBS curve.
NURBS curve nodes (or Greville abscissaes) are defined as:
t[i] = sum(u[i+j] for j from 1 to p) / p, where u is curve's knotvector, and
p is curve's degree.
NURBS curve node points (or Greville points) are points at the curve at
parameter values equal to node values.
The number of curve's nodes is equal to the number of curve's control points.
Node points of the curve are positioned on the curve near corresponding control
points. So in many NURBS algorithms, node points are used to define the shape
of NURBS curve, instead of control points.

Screenshot_20220823_221621

Preflight checklist

Put an x letter in each brackets when you're done this item:

  • Code changes complete.
  • Code documentation complete.
  • Documentation for users complete (or not required, if user never sees these changes).
  • Manual testing done.
  • Unit-tests implemented.
  • Ready for merge.

@portnov portnov added the NURBS label Aug 23, 2022
@portnov portnov merged commit 4a16e55 into master Aug 23, 2022
@portnov portnov deleted the nurbs_curve_nodes_node branch August 23, 2022 17:23
@rendetto
Copy link
Contributor

That's awesome! Thank you @portnov!
This is a simple test showing how we can recreate exactly the source curve interpolating the node points using the "Points" metric. It seems it is valid only for Bezier curves though.
greville_to_bezier

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants