3
$\begingroup$

I have NURBS surface data. I have a list of control points, knot vectors in U and V params and the degree. The U knot vector lies in range -3.14 to 3.14 and the knot V vector lies in range -100 to 100. How can I normalize this data so that both knot U and V lies in range 0 to 1?

Thanks for your help!

$\endgroup$
1
$\begingroup$

The relative size of the spacing of knots is irrelevant for the NURBS curve. The only thing that matters is that they keep the relation. Note this may not be wise as parametrization may have other uses behind the scenes.

enter image description here

Image 1: 3 differently parametrized knots result in same curve if knot values are relatively the same.

So you can scale and offset knot points as you wish. However you can not make the relative distances between entries different or your curve will change.

enter image description here

Image 2: On the other hand if you change the relative spacing your in trouble. So beware of floating point errors if you need to be really accurate.

$\endgroup$
  • $\begingroup$ Thanks for the reply joojaa! I understand that relative size of the spacing of knots is irrelevant for the NURBS curve. But I need a normalized knot span for computational purpose in undocumented legacy application. Currently I am facing issues when the knot span is not normalized. Does normalizing the knot span have no effect on the control points of the NURB surface/curve? If so, I can simply normalize the knot span between 0 and 1 using standard normalizing formula without worrying about its effects on control point list. I wish to know if it is safe to do so. $\endgroup$ – Vaibhav Dec 1 '16 at 9:18
  • $\begingroup$ @Vaibhav as long as you scale and offset by a uniform amount yes sure you can normalize thats what example number 2 does. $\endgroup$ – joojaa Dec 1 '16 at 12:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.